Слияние конфигурации по умолчанию с пользовательскими настройками - PullRequest
4 голосов
/ 21 сентября 2011

Допустим, у нашего приложения есть конфигурация, которая хранится в виде простого массива:

$config = array(
    'max_files' => 10,
    'suffixes'  => '[jpg,swf,png,gif]',
    'max_size'  => '10G'
);

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

Теперь допустим, что мы хотим открыть эти значения конфигурации для пользователя (администратора) веб-сайта.Они изменят эти значения с помощью некоторого графического интерфейса пользователя (текстовое поле, раскрывающийся список, мультиселект и т. Д.).

Как мы применяем обновления, когда выпускаем новые версии программного обеспечения, и при этом позволяем пользователям редактировать значения.Как большие системы делают это (например, magento).Должны ли мы копировать значения в базу данных после «обновления», а затем не использовать значения в коде?

Рад слышать идеи и мысли

Ответы [ 2 ]

6 голосов
/ 21 сентября 2011
  1. Получить массив значений конфигурации по умолчанию
  2. Получение значений конфигурации, заданных пользователем (из отдельной базы данных, файла конфигурации и т. Д.)
  3. Объединить два массива, перезаписав все пересекающиеся ключи из конфигурации по умолчанию
  4. ??
  5. Прибыль
2 голосов
/ 10 марта 2014

Если кто-то другой только что выкопал это, с PHP 5.3+ вы должны использовать array_replace_recursive. В более ранних версиях вы можете просто добавить два массива $array1+$array2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...