Веб-разработка, логотип Eqsash

Постоянные переменные в Drupal, как работает функция variable set

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

drupal-variable-table

В Друпал можно использовать технологию хранения постоянных переменных. Это быстрое решение для сохранения практически любых данных. Сначала необходимо подготовить данные, затем достаточно вызвать функцию variable_set. Эта функция принимает два параметра, первый – имя переменной, второй – ее значение. Имя переменной следует задавать прописными буквами на английском языке, значением может быть любая переменная, например, сериализованный массив.

variable_set('variable_name', 'variable_value');

Когда переменная сохранена, в дальнейшем ее можно получить при помощи функции variable_get. Достаточно указать в параметрах имя получаемой переменной и значение по умолчанию - оно будет использовано, если такая переменная не была установлена.

variable_get('variable_name', 'default_value');

Для удаления ранее установленной переменной можно воспользоваться специальной функцией – variable_del. Достаточно указать в параметре название переменной.

variable_del('variable_name');

Как устроена функция variable_set? Она просто сохраняет значение в базу данных Друпал, в таблицу variable. В этой таблице два столбца – название переменной и ее данные в виде blob. Перед сохранением, данные при необходимости сериализуются. Важно понимать, что variable_set может помешать реализации мультиязычности на сайте, так как о переводе данных из этой таблицы нужно позаботиться самостоятельно.

Какие еще есть недостатки variable_set? Использовать эту функцию следует только хранения небольших данных, а не для каких-то больших массивов информации, хотя эта функция и позволяет делать это. Не рекомендуется этого делать, так как при каждом запросе страницы происходит загрузка всех переменных из базы данных, даже если Вы не вызывали variable_get. Представьте, как это может замедлить скорость сайта, если были сохранены огромные значения и таких переменных множество. Функция variable_get всего лишь получает готовую информацию из уже загруженных ранее данных.

Как получить список всех переменных, установленных variable_get? Для этого опять же можно обратиться к таблице Друпал – variable. Посмотрите какие значения есть в Вашем проекте и какие значения присутствуют там после новой установки Друпал. Можно быстро сделать новую установку Друпал или посмотреть эту таблицу на сайте описания таблиц Друпал. Так Вы увидите различия и сможете составить список всех установленных пользовательских переменных. После чего можно, например, удалить их все при помощи variable_del.

Таким образом, мы рассмотрели устройство функции variable_set. Она может быть полезна для хранения небольших данных, для хранения значительных объемов лучше ее не использовать, а завести отдельную таблицы в базе данных.

Оставить заявку

Последние статьи

Популярные разделы