Да, вы можете это сделать. Должны ли вы это делать, это целый вопрос. Итак:
$this->serviceLocator->setAllowOverride(true);
// service keys are case insensitive
// just remember that $this->config should contain the whole config
$this->serviceLocator->setService('Config', $this->config);
$this->serviceLocator->setAllowOverride(false);
Для setService
работы необходимо переключить флаг под названием allowOverride
. Вы можете видеть это here. Впоследствии вы должны, вероятно, отключить переопределения, следовательно, еще один вызов setAllowOverride
.
Также: you can hook into EVENT_MERGE_CONFIG
and change it there.
Я знаю это. Я хочу переопределить конфигурацию, например, в функции onBootstrap module.php – user3314010
@ user3314010 Возможно, вы можете объяснить, чего вы хотите достичь? Я думаю, что config должен быть статическим. Если вы создадите конфигурационную динамику, вы можете столкнуться с проблемами. Вы можете загрузить/установить пользовательскую конфигурацию для определенных служб внутри своих заводов. – Wilt
Нашли решение, которое работает для меня: $ serviceLocator-> setAllowOverride (true); $ serviceLocator-> setService ('config', $ configuration); $ serviceLocator-> setAllowOverride (false); – user3314010