4

これが可能かどうかはわかりませんが...

zf2 ModuleManager は、モジュールのすべての構成配列を順番にマージしてから、ユーザー定義の構成配列をマージします。したがって、$config1がマージされると、$config2が得られます$merged

$config1 = [
   'key1' => 1,
   'key2' => 2,
   'key3' => 3
]

$config2 = [
    'key1' => 'different',
    'key4' => 4
]

$merged = [
    'key1' => 'different',
    'key2' => 2
    'key3' => 3
    'key4' => 4
]

これは素晴らしいことで、ほとんどの場合に有効です。ただし、キーを削除したい場合はどうすればよいですか? 私が$config1上記のように持っていて、この代替を以下に作成したい$merged場合、の値はどうあるべきですか$config2(削除されていることに注意してくださいkey2)?

$merged = [
    'key1' => 'different',
    'key3' => 3
    'key4' => 4
]
4

2 に答える 2

2

目的に応じて任意の module.php を使用します (必要に応じて具体的にすることができます)。

以下のコードを試してください

pulbic function init(){

$events = StaticEventManager::getInstance();

$events->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', array(
    $this,
    'removeMyKey'
    ), 110);
}
public function removeMyKey($mvcEvent){
    $sl = $mvcEvent->getTarget()->getServiceLocator();
    $config = $sl->get('Config');
    unset($config['key2']);
    $sl->set('Config',$config);
    return $sl;
}

これがキーの削除に役立つことを願っています。必要に応じて変更してください。

于 2013-03-25T13:02:31.083 に答える