@semki096

Как в этом коде реализовано внедрение зависимостей (Slim PHP)?

// Create app
$app = new \Slim\App();

// Get container
$container = $app->getContainer();

// Register component on container
$container['view'] = function ($container) {
    $view = new \Slim\Views\Twig('path/to/templates', [
        'cache' => 'path/to/cache'
    ]);

Хочу понять что здесь происходит. Понял что:
1. eсть обьект app c контейнером $container
2. в этот контейнер мы помещаем обьект twig
Правильно ли я понимаю? И самое главное - не могу понять зачем здесь эта функция и зачем она передаёт этот аргумент (function ($container))?
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
$app корень приложения, запрашивают контейнеры и суют туда view функцию для создания обертки над отображениями. Фреймвор сам вызовет функцию
$container['view'](передаст сюда линк на app->контейнер)
мы инициируем вью и вернем инстанс для работы с вью.

из контроллеров запрашиваем $this->view->render(...) (магические методы) вызывается наша обертка с методом render
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы