@semki096

Как правильно работать с контейнерами в Slim, какая логика построения зависимостей?

Запутался ). Допустим есть 2 обьекта или модуля(как правильно назвать?). Шаблонизатор Twig и ORM Eloquent.
1. Запихиваю их соответственно в контейнеры
$container['view'] = function ($container) {
    $view = new \Adbar\Slim\Views\Twig('path/to/templates');
    ...
};

$container['db'] = function ($container) {
    $capsule = new \Illuminate\Database\Capsule\Manager;
    ...
}

2. Добавляю роутер
$app->get('/', 'App\PageController:index');

Вот здесь вопрос. Правильно ли я понимаю что в этот контроллер я должен передать экземпляры обьектов Twig и Eloquent? Как это сделать?
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
allard
@allard
Серийный программист
Сам Slim передает в вызываемый контроллер контейнеры.
То есть в контроллере в конструкторе принимаешь контейнеры:
public function __construct($container) {
        $this->container = $container;
    }

И потом уже обращаешься к своим либам:
$this->container->view;
$this->container->db;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы