Лучший способ сохранить конфигурацию drupal
Я знаю три варианта хранения конфигураций:
Используйте пользовательский интерфейс и сохраните значения в таблице переменных.
Также вы можете хранить их в settings.php и используйте массив $conf["] для хранения информации.
Последний вариант - сохранить значения с помощью модуля переменных.
Что вы считаете лучшим, не для конечного пользователя, а для разработчика.
Оскар
Я не добавляю "функции strongarm +", потому что иногда особенности - это маленький кошмар, и я пытаюсь оставить его подальше от себя.
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
(см. этот вопрос по причине того, как и почему) файл для хранения конфигурации, зависящей от среды (например, электронная почта сайта - вещи, которые могут меняться в зависимости от среды).
Если вам нужно хранить переменные конфигурации для всего сайта, используйте таблицу переменных с
Имейте в виду, variable_set
очищает и перестраивает весь кэш переменных, поэтому используйте экономно.
Таблица переменных также должна использоваться только для небольших настроек conf, так как она загружается при каждом запросе страницы.
variable_set
хорошо работает с system_settings_form для форм настроек администратора.
В разница между variable_set
и $conf['name'] = 'value';
в settings.php заключается в том, что первый хранит в базе данных, в то время как второй добавляет значение conf динамически во время выполнения.
Если вы хотите добавить переменные конфигурации для конкретного модуля или более крупные параметры, создайте таблицу в своем модуле.установите файл с помощью
И добавьте к этому свои настройки конфигурации.
Он будет автоматически установлен при установке модуля, в противном случае вы можете установить схему позже с обновлением крюк и