Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
113 of 182 menu
Внимание! Репетиторство по Python! Осталось последнее место! Стоимость: 20$ за занятие 1.5 часа. Жми для подробностей!

Таблица state

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

Поля

Поле Тип данных Описание
collection varchar(128) Имя коллекции, к которой принадлежит ключ. Обычно используется для группировки связанных состояний. Не может быть пустым.
name varchar(128) Первичный ключ, уникальное имя состояния в пределах своей коллекции. Вместе с collection образует составной первичный ключ.
value blob Сериализованное значение состояния. Может хранить различные типы данных: числа, строки, массивы, объекты.

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

Drupal предоставляет API для работы с состояниями через службу state. Для получения значения используется \Drupal::state()->get('key'), а для установки - \Drupal::state()->set('key', $value).

Данные в таблице state сериализуются перед сохранением и автоматически десериализуются при извлечении. Это позволяет хранить сложные структуры данных.

Основное отличие от таблицы cache заключается в том, что данные в state не имеют срока годности и не удаляются при очистке кеша. Они сохраняются до тех пор, пока не будут явно удалены или изменены.

Состояния следует использовать для данных, которые могут изменяться во время работы системы, но не являются конфигурацией, которая должна экспортироваться или импортироваться (для этого используется Configuration API).

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

Получить все состояния из коллекции system можно следующим запросом:

SELECT collection, name, value FROM state WHERE collection = 'system';

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

  • таблицу cache,
    которая предназначена для кеширования данных
  • таблицу config,
    которая хранит конфигурацию сайта
  • таблицу key_value,
    которая используется для хранения произвольных ключ-значение данных
  • таблицу queue,
    которая управляет фоновыми задачами в очереди