コード例 #1
0
ファイル: Storage.php プロジェクト: clickalicious/doozr
 /**
  * Fetches a frozen object from the object storage and thaws it.
  *
  * @param string $id The ID of the object that is to be fetched.
  *
  * @return object
  */
 public function fetch($id)
 {
     // Bail out if a non-string was passed.
     if (!is_string($id)) {
         throw Object_Freezer_Util::getInvalidArgumentException(1, 'string');
     }
     // Try to retrieve object from the object cache.
     $object = $this->cache->get($id);
     if (!$object) {
         // Retrieve object from the object storage.
         $frozenObject = $this->doFetch($id);
         $this->fetchArray($frozenObject['objects'][$id]['state']);
         $object = $this->freezer->thaw($frozenObject);
         // Put object into the object cache.
         $this->cache->put($id, $object);
     }
     return $object;
 }
コード例 #2
0
ファイル: CacheTest.php プロジェクト: n3m0/php-object-freezer
 /**
  * @covers  Object_Freezer_Cache::get
  */
 public function testGetReturnsFalseForNotExistingId()
 {
     $cache = new Object_Freezer_Cache();
     $this->assertFalse($cache->get('foo'));
 }