Использование простого внедрения зависимостей в PHP - PullRequest
0 голосов
/ 31 мая 2018

Я работаю над проектом, в котором я пытаюсь реализовать простое внедрение зависимостей.Я реализовал приведенный ниже класс, но не уверен, что это лучший метод или я должен использовать некоторые из контейнеров DI?

Класс контейнеров

namespace App\Includes;

class Container {
  private $class=[];

  protected $config = [
  'user' => 'App\Models\User',
  'template' => 'Library\Template',
  'database' => 'Library\Database'
  ];


 public function getClass($name) {
    if (!isset($this->class[$name])) {
        $this->class[$name] = new $this->config[$name]();
    }

    return $this->class[$name];
 } 
}

Контроллер

 namespace App;

 use App\Includes\Container as Container;

class Controller{
protected $template;
protected $database;

  public function __construct(Container $container){
    $this->database = $container->getClass('database');
    $this->template = $container->getClass('template');

 }

 }

Здесь я запускаю приложение ($ controller предоставляется маршрутизатором)

$container = new App\Includes\Container();
$obj = new $controller($container);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...