Включение части конфигурации из модуля вендора с использованием настроек composer и config-provider - PullRequest
0 голосов
/ 23 января 2019

Я создаю пакет для ZF3.Пакет должен изменить конфигурацию приложения, в котором он будет использоваться, особенно он должен добавить еще одну абстрактную фабрику в контроллерах.К сожалению, я не могу найти способ заставить систему загрузить упакованную конфигурацию.

В соответствии с документацией и некоторыми примерами, которые я нашел в сети, я попытался создать класс ConfigProvider и установить этот класс в разделе composer.json.extras-> zf-> config-provider

Вот код, который я добавил в composer.json

"extra" : {
    "zf" : {
        "config-provider" : "Voyteck\\VExtControllers\\ConfigProvider"
    }
}

, а также код ConfigProvider (вставленный в файл в пути: VExtControllers/src/VExtControllers/ConfigProvider.php):

namespace Voyteck\VExtControllers;

class ConfigProvider
{
    public function __invoke() {
        return [
            'controllers' => [
                'abstract_factories' => [
                    \Voyteck\VExtControllers\Factory\LazyControllerFactory::class
                ]
            ]
        ];
    }
}

Я ожидал, что он будет загружать (вызывать) этот класс каждый раз при загрузке конфигурации - к сожалению, это не так.

Я думаю,ключ к этому - ответ на вопрос, когда composer.json (особенно упомянутый раздел) действительно интерпретируется и интерпретируется ли он каждый раз при запуске приложения.У меня есть сомнения, работает ли это так - поскольку даже когда я изменил composer.json в Zend / Form, значения конфигурации ConfigProvider из этой системы все еще существуют ...

Любая помощь в том, как с этим справиться, будетвысоко ценится:)

...