diff --git a/Manager/RepositoryManager.php b/Manager/RepositoryManager.php index 2022754..337f32a 100644 --- a/Manager/RepositoryManager.php +++ b/Manager/RepositoryManager.php @@ -2,6 +2,7 @@ namespace FOQ\ElasticaBundle\Manager; +use FOQ\ElasticaBundle\Finder\FinderInterface; use FOQ\ElasticaBundle\Repository; use RuntimeException; @@ -11,12 +12,12 @@ use RuntimeException; * Allows retrieval of basic or custom repository for mapped Doctrine * entities/documents. */ -class RepositoryManager +class RepositoryManager implements RepositoryManagerInterface { protected $entities; protected $repositories; - public function addEntity($entityName, $finder, $repositoryName = null) + public function addEntity($entityName, FinderInterface $finder, $repositoryName = null) { $this->entities[$entityName]= array(); $this->entities[$entityName]['finder'] = $finder; diff --git a/Manager/RepositoryManagerInterface.php b/Manager/RepositoryManagerInterface.php new file mode 100644 index 0000000..9340506 --- /dev/null +++ b/Manager/RepositoryManagerInterface.php @@ -0,0 +1,36 @@ + + * + * Allows retrieval of basic or custom repository for mapped Doctrine + * entities/documents. + */ +interface RepositoryManagerInterface +{ + + /** + * Adds entity name and its finder. + * Custom repository class name can also be added. + * + * @param string $entityName + * @param $finder + * @param string $repositoryName + */ + public function addEntity($entityName, FinderInterface $finder, $repositoryName = null); + + /** + * Return repository for entity + * + * Returns custom repository if one specified otherwise + * returns a basic repository. + * + * @param string $entityName + */ + public function getRepository($entityName); + +}