ZF2 Config: переопределение значений массива

В конфигах моего модуля в ZF2 у меня есть несколько значений, которые являются массивами, состоящими из флагов для манипулирования изображениями.

Мне нужно иметь возможность переопределить их в зависимости от проекта, однако, когда я пытаюсь это просто объединить 2 массива. Очевидно, что я могу использовать ключи для переопределения таким образом, однако мне нужно иметь возможность заменить значения в целом, так как не все флаги потребуются во всех проектах.

Есть ли способ полностью переопределить значение, когда это массив, а не объединение массивов?

ура

0

Решение

Мне нужно иметь возможность заменить значения в целом, так как не все флаги потребуются во всех проектах

Если у вас есть несколько установок 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',
),
),
),
),
);

Основное отличие в том, что вы не удаление значения конфигурации, а точнее добавление. Это делает каждый из ваших модулей намного более пригодным для повторного использования.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector