/** * Retrieve an entity, throwing a NotFoundException if the entity is not found * * @param string $class_name * @param string $id * @param bool $use_cache * @return object */ public function retrieve($class_name, $id, $use_cache = true) { $this->validateId($id); if ($use_cache && $this->cache->exists($class_name, $id)) { return $this->cache->retrieve($class_name, $id); } $metadata = $this->mapper->getEntityMetadata($class_name); $serialised_data = $this->driver->retrieve($this->key_scheme->getEntityKey($metadata->getTableName(), $id)); $writer = new Writer($metadata, $serialised_data, $this); $entity = $writer->getProxy(); $this->cache->store($class_name, $id, $entity); return $entity; }
/** * @dataProvider getCacheServices * @expectedException \Bravo3\Orm\Exceptions\NotFoundException * @param EntityCachingInterface $service */ public function testStrategyException(EntityCachingInterface $service) { $service->retrieve(Product::class, '12345'); }