Можно ли использовать Zend Service Manager с пользовательской базой кода?

Я хотел бы использовать Zend Service Manager в моей пользовательской базе кода. Он не построен на Zend MVC, и вместо этого я использую только несколько пакетов Zend, таких как Zend Console и Zend Config.

Я хотел бы использовать Zend Service Manager с функциональностью, как только код входит в мой класс Core, я хотел бы инициализировать объекты DB и Config и сохранить их как службу в Zend Service Manager. Теперь я хотел бы использовать этот сервис во всей моей кодовой базе.

Есть ли способ использовать его, не передавая менеджер сервисов в конструктор каждого класса? Кроме того, другие мои классы не будут расширяться из этого базового класса, и вместо этого этот базовый класс будет создавать объекты на основе моих требований.

Вот как я создаю сервис:

    $config = \Zend\Config\Factory::fromFiles([
        APPLICATION_PATH . '/config/config.ini',
        APPLICATION_PATH . '/config/' . $route->getMatchedParam('brand') . '/' . $route->getMatchedParam('department') . '/config.ini',
    ]);

    $serviceManager = new ServiceManager([
        'factories' => [
            stdClass::class => InvokableFactory::class,
        ],
    ]);

    $serviceManager->setService('config', $config);

1 ответ

Да, вы можете использовать его где угодно. Это лучшая часть ZF, вы можете использовать его части в любом месте. И нет, вам не нужно передавать конфигурацию по методу конструкции. Он имеет методы "setFactory" и "setService" и множество других. кассовая документация

Другие вопросы по тегам