Я создаю пакет для 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 из этой системы все еще существуют ...
Любая помощь в том, как с этим справиться, будетвысоко ценится:)