Как настроить 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/

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