<?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;
							 | 
						|
								    }
							 | 
						|
								}
							 |