Перейти к основному содержимому

Хранилище настроек (Settings Store)

Settings Store — это простое хранилище данных типа «ключ-значение», которое позволяет сохранять любые виды настроек в базу данных Pimcore через API. Для этого компонента не предусмотрено пользовательского интерфейса. В отличие от TmpStore, настройки здесь не имеют срока действия и не удаляются автоматически.

Примеры использования:

  • Хранение информации о том, установлен ли бандл.
  • Настройки бандла во время выполнения (Runtime).
  • ...

Сохраняемые настройки могут быть разделены на пространства имен или сгруппированы с помощью атрибута scope (область видимости). Поддерживаются следующие скалярные типы данных, доступные через константы SettingsStore::TYPE_*:

  • SettingsStore::TYPE_STRING (строка)
  • SettingsStore::TYPE_BOOLEAN (логический тип)
  • SettingsStore::TYPE_INTEGER (целое число)
  • SettingsStore::TYPE_FLOAT (число с плавающей точко)

Мы настоятельно рекомендуем использовать атрибут scope при работе с настройками бандла (например, указывать имя бандла). При использовании хранилища внутри основного приложения этот атрибут можно опустить.

Примеры использования

Рекомендуемый способ

  
// Сохранить или обновить настройку (id, данные, тип, scope)
SettingsStore::set('my-setting-id', 'this is some setting value', SettingsStore::TYPE_STRING, 'bundle-settings-1');

// Получить настройку по ID (id, scope)
$setting = SettingsStore::get('my-setting-id', 'bundle-settings-1');

// Получить ID всех настроек для конкретной области видимости (scope)
$ids = SettingsStore::getIdsByScope('bundle-settings-1');

// Удалить настройку (id, scope)
SettingsStore::delete('my-setting-id', 'bundle-settings-1');


ИЛИ

  
// Сохранить или обновить настройку (id, данные, тип)
SettingsStore::set('my-setting-id', 'this is some setting value', 'string');

// Получить настройку по ID
$setting = SettingsStore::get('my-setting-id');

// Найти ID настроек по области видимости (если она была указана ранее)
$ids = SettingsStore::getIdsByScope('bundle-settings-1');

// Удалить настройку по ID
SettingsStore::delete('my-setting-id');



Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.