Хранилище настроек (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');
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.