В конфигах моего модуля в ZF2 у меня есть несколько значений, которые являются массивами, состоящими из флагов для манипулирования изображениями.
Мне нужно иметь возможность переопределить их в зависимости от проекта, однако, когда я пытаюсь это просто объединить 2 массива. Очевидно, что я могу использовать ключи для переопределения таким образом, однако мне нужно иметь возможность заменить значения в целом, так как не все флаги потребуются во всех проектах.
Есть ли способ полностью переопределить значение, когда это массив, а не объединение массивов?
ура
Мне нужно иметь возможность заменить значения в целом, так как не все флаги потребуются во всех проектах
Если у вас есть несколько установок ZF2, которые совместно используют один и тот же модуль, где они отличаются только по конфигурации, имеет смысл определять только те значения конфигурации, которые делают не отличаются между проектами.
Затем вы должны установить конкретные значения проекта в глобальном конфигурационном файле (например, config/autoload/module.foo-module.global.config
)
Все сторонние модули используют этот метод; например, доктрина ODM module.config.php
выглядит так:
return array(
'doctrine' => array(
'connection' => array(
'odm_default' => array(
'server' => 'localhost',
'port' => '27017',
'connectionString' => null,
'user' => null,
'password' => null,
'dbname' => null,
'options' => array()
),
),
),
);
В каждом проекте я бы затем переписал (что в вашем случае было бы добавить) конкретный конфиг в module.doctrine-mongo-odm.global.php
)
return array(
'doctrine' => array(
'connection' => array(
'odm_default' => array(
'server' => '10.0.7.9',
'dbname' => 'my_database_name',
'options' => array(
'foo' => 'bar',
),
),
),
),
);
Основное отличие в том, что вы не удаление значения конфигурации, а точнее добавление. Это делает каждый из ваших модулей намного более пригодным для повторного использования.
Других решений пока нет …