Может быть, вы надеетесь узнать, что variable_set - это волшебный способ хранения всех видов структурированных данных в вашей базе данных, а этот variable_get - способ его получения снова. К сожалению это не так.
«Постоянные переменные», как их часто называют, предназначены для относительно простых пар ключ-значение, которые должны сохраняться в запросах, пользователях и сеансах, часто до тех пор, пока администратор сайта не изменит значение. Хорошим примером является название сайта.
Итак, как это работает?
Когда Drupal загружается, все переменные читаются из кэша (если есть) или из таблицы переменных. (См. Variable_initialize для точного кода.) Переменные и хранятся в глобальной $conf
переменной, огромный массив. Drupal делает это, потому что это более эффективно, чем выполнение запросов к базе данных каждый раз, когда требуется переменная. (Это также причина, по которой variable_set не подходит для больших двоичных объектов данных: они будут загружаться при каждом запросе!)
Всякий раз, когда вы используете variable_get('variable_name', 'default_value')
, имя переменной ищется в массиве $ conf. Если он существует, значение возвращается; в противном случае возвращается значение по умолчанию.
Наконец, есть третий член семейства: variable_del . Как следует из названия, это удаляет переменную из таблицы переменных. Эта функция часто используется в реализациях hook_uninstall , удаляя переменные при удалении модуля.
Если вы ищете способы для хранения более сложных пользовательских структур данных в базе данных, посмотрите hook_schema и drupal_write_record или используйте систему сущностей Drupal и Entity API .
variable_set()
что кэш переменных перестраивается, поэтому он обычно зарезервирован для данных, которые достаточно долговечны и согласованны, например, настройки администратора и тому подобное. Или, другими словами, его не следует использовать вместо статических переменных между функциями, которые меняются во время сборки страницы, или как статические переменные.Если вы используете Drush (настоятельно рекомендуется), вы можете
drush vget > variables.txt
из командной строки создать текстовый файл со списком всех текущих переменных и их значений. Точно так же вы можете использоватьdrush vset
для изменения установить любую переменную на другое значение.См GitHub для получения более подробной информации о
variable-get
,variable-set
и других полезных команд.источник
Чтобы установить переменные, вы должны использовать variable_set () . Затем вы можете получить их с помощью variable_get () . Вы должны ознакомиться с сайтом Drupal API.
Переменные, если они хранятся, можно найти в таблице переменных.
источник
Вы можете:
источник