Лучший способ сохранить конфигурацию drupal


Я знаю три варианта хранения конфигураций:

Используйте пользовательский интерфейс и сохраните значения в таблице переменных.

Также вы можете хранить их в settings.php и используйте массив $conf["] для хранения информации.

Последний вариант - сохранить значения с помощью модуля переменных.

Что вы считаете лучшим, не для конечного пользователя, а для разработчика.

Оскар

Я не добавляю "функции strongarm +", потому что иногда особенности - это маленький кошмар, и я пытаюсь оставить его подальше от себя.

Author: Chapabu, 2013-06-20

2 answers

Если вы буквально ищете хранилище переменных, то variable_set() и variable_get() это путь, по которому нужно идти... во время разработки. Однако это означает, что переменные хранятся в БД, а не в файловой системе, что может сделать развертывание немного болезненным позже. Из вашего вопроса я предполагаю, что это то, чего вы пытаетесь избежать.

Если вы хотите хранить конфигурацию по всему сайту , а не только переменные, то есть несколько опции.

Особенности

Я знаю, что вы сказали, что вам не нужны Функции , но функции 2.x на самом деле являются ЗНАЧИТЕЛЬНЫМ улучшением по сравнению с 1.x, поэтому, если вы не занимались этим некоторое время, я бы предложил попробовать еще раз.

Отказ от ответственности: Я люблю Особенности 2.x:-)

Управление Конфигурацией

Затем есть Управление конфигурацией , которое является попыткой работать с некоторыми из Drupal 8 CMI работает на Drupal 7. Он относительно прост в использовании, а также довольно прост в расширении.

На другой заметке; Клайв является своего рода евангелистом по управлению конфигурацией - так что, если у вас возникнут какие-либо трудности с этим, у вас здесь есть много информации.

Руководство

Наконец, вы можете создать пользовательский модуль, который реализует крючки конфигурации по умолчанию (такие как hook_views_default_view или hook_default_rules_configuration). Внимательный глаз заметит, что эти крючки являются ключом элемент в преобразовании конфигурации в функции:-)

Strongarm также не зависит от функций, поэтому вы можете использовать API Strongarm самостоятельно:)

Дополнительный

Я склонен использовать $conf[] в сочетании с исключенным Git local.settings.php (см. этот вопрос по причине того, как и почему) файл для хранения конфигурации, зависящей от среды (например, электронная почта сайта - вещи, которые могут меняться в зависимости от среды).

 5
Author: Chapabu, 2017-04-13 12:47:06

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

Имейте в виду, variable_set очищает и перестраивает весь кэш переменных, поэтому используйте экономно.

Таблица переменных также должна использоваться только для небольших настроек conf, так как она загружается при каждом запросе страницы.

variable_set хорошо работает с system_settings_form для форм настроек администратора.

В разница между variable_set и $conf['name'] = 'value'; в settings.php заключается в том, что первый хранит в базе данных, в то время как второй добавляет значение conf динамически во время выполнения.

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

И добавьте к этому свои настройки конфигурации.

Он будет автоматически установлен при установке модуля, в противном случае вы можете установить схему позже с обновлением крюк и

 3
Author: David Thomas, 2013-06-21 08:10:44