|
|
- <?php
-
- namespace App\Repositories;
-
- use Exception;
-
- /**
- * Manager Class to create Repository Objects that
- * are located in App\Repositories\
- *
- *
- * @author Björn Hase, Tentakelfabrik
- * @license http://opensource.org/licenses/MIT The MIT License
- * @link https://gitea.tentakelfabrik.de/Tentakelfabrik/super-gear-directus
- *
- */
-
- class Manager
- {
- /**
- * naming of Repository
- * @var string
- */
- const NAMESPACE = 'App\Repositories\\';
-
- /**
- * naming of Repository
- * @var string
- */
- const REPOSITORY_SUFFIX = 'Repository';
-
- /**
- * getting repository object
- *
- * @param string $repositoryClass
- * @return AbstractRepository
- */
- public static function get($repositoryName)
- {
- $repositoryClass = self::NAMESPACE.$repositoryName.self::REPOSITORY_SUFFIX;
-
- if (!class_exists($repositoryClass)) {
- throw new Exception('Repository Class '.$repositoryClass.' not exists!');
- }
-
- // create respository object
- $repository = new $repositoryClass();
-
- return $repository;
- }
- }
|