PhalconPHP: проблема объявления своего диспатчера в DI?

Подскажите в чем проблема.
Объявляю свой диспетчер в контейнере, но он не работает, может инициализация происходит раньше?
Такое ощущение что он не записывает в контейнер потому что уже существует инициализированный диспетчер.
Но привязка DI к приложению происходит позже:

$di = new Phalcon\DI\FactoryDefault();


$di->set('dispatcher', function() use ($di) {

    $eventsManager = $di->getShared('eventsManager');

    $security = new Security($di);

    $eventsManager->attach('dispatch', $security);

    $dispatcher = new Phalcon\Mvc\Dispatcher();

    $dispatcher->setEventsManager($eventsManager);

    return $dispatcher;
});
  • Вопрос задан
  • 2680 просмотров
Решения вопроса 1
kompi
@kompi
nullstack devoops
Как вариант, можно получит дефолтный диспетчер через di и работать с ним, не создавая нового.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@emerido Автор вопроса
Надо обязательно присвоить переменной сервисы с которыми хотим работать
Затем произвести действия и снова записать в контейнер
$events = $di->getShared('eventsManager');
$events->attach('dispatch', new Security($di));

$dispatcher = $di->getShared('dispatcher');
$dispatcher->setEventsManager($events);

$di->setShared('dispatcher', $dispatcher);

Странное конечно поведение
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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