Как настроить Zend\Di
Мне нужна помощь с Zend\Di;
Я устал от задачи записи фабрик в мое приложение с помощью Zend\ServiceManager, я хочу понять, как работает конфигурация в среде MVC Zend\Di.
Я вижу этот пост @Ocramius, с некоторой конфигурацией в module.config.php
в верхнем ключе di
:
<?php
return array(
'di' => array(
'allowed_controllers' => array(
// this config is required, otherwise the MVC won't even attempt to ask Di for the controller!
'Application\Controller\GreetingController',
),
'instance' => array(
'preference' => array(
// these allow injecting correct EventManager and ServiceManager
// (taken from the main ServiceManager) into the controller,
// because Di doesn't know how to retrieve abstract types. These
// dependencies are inherited from Zend\Mvc\Controller\AbstractController
'Zend\EventManager\EventManagerInterface' => 'EventManager',
'Zend\ServiceManager\ServiceLocatorInterface' => 'ServiceManager',
),
),
),
// remaining config
);
Кто-нибудь может опубликовать URL-адрес документа этой конфигурации или более подробные примеры здесь?
1 ответ
Если у вас много разных контроллеров и у вас есть выбор из множества сервисов, то по этой ссылке следует выбрать те из них, которые имеют конфигурацию или аннотацию: https://github.com/ralphschindler/Zend_DI-Examples
Я думаю, что вы должны смотреть на некоторые библиотеки, такие как Aura.Di или Pimple. Они предоставляют даже мощные DI-контейнеры.
Если у вас есть минимальные услуги для внедрения, используйте инициализаторы. Проверьте это: http://akrabat.com/zend-framework-2/zendservicemanager-configuration-keys/