НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
122 of 182 menu

Таблица variable

Таблица variable является одной из ключевых системных таблиц в Drupal. Она служит централизованным хранилищем для всех переменных системы, модулей и тем. Переменные представляют собой пары "ключ-значение", где ключом является имя переменной, а значением - сериализованные данные конфигурации.

Поля

Поле Тип данных Описание
name varchar(128) Первичный ключ таблицы. Уникальное имя переменной. Имена обычно имеют префиксы, соответствующие модулям (например, node_preview, user_picture_dimensions).
value longblob Значение переменной в сериализованном виде. Для хранения используется функция serialize() PHP, что позволяет сохранять сложные структуры данных (массивы, объекты).

Как это работает

При установке Drupal создает таблицу variable и заполняет ее начальными значениями системных переменных. Каждый модуль при установке добавляет в эту таблицу свои переменные с значениями по умолчанию через hook_install().

Drupal предоставляет API для работы с переменными:

- variable_get($name, $default) - получение значения переменной
- variable_set($name, $value) - установка значения переменной
- variable_del($name) - удаление переменной

При вызове variable_get() система сначала проверяет статический кеш в памяти, затем кеш БД, и только если переменная не найдена - обращается к таблице variable. Это значительно повышает производительность.

При изменении переменной через variable_set() значение сериализуется и сохраняется в таблице, после чего очищаются соответствующие кеши.

Важно отметить, что в Drupal 8 и выше данная таблица была заменена системой конфигурации Configuration API, которая использует YAML-файлы и таблицы config и cache_config.

Пример SQL-запроса

Получить все переменные, связанные с модулем user:

SELECT name, value FROM variable WHERE name LIKE 'user_%' ORDER BY name;

Получить значение конкретной переменной:

SELECT value FROM variable WHERE name = 'site_name';

Смотрите также

  • таблицу system,
    которая хранит информацию об установленных модулях и темах
  • таблицу cache,
    которая используется для кеширования данных системы
  • таблицу sessions,
    которая хранит данные пользовательских сессий
  • таблицу registry,
    которая содержит информацию о зарегистрированных классах и функциях
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить