Конфигурация окружения
Специфичные для окружения конфигурации
Pimcore поддерживает различные конфигурации для разных окружений (dev, test, stage, prod и т. д.), а также пользовательские конфигурации с механизмом автоматического отката (fallback).
Pimcore базируется на окружениях Symfony с некоторыми дополнениями. Основную информацию об этом можно найти в документации Symfony.
Примечание: Установите пакет
symfony/dotenv, чтобы использовать компонент Symfony DotEnv. Это позволит настраивать переменные окружения в файлах.env, или (например, в продакшн-среде) через реальные переменные окружения сервера.
Помимо стандартных конфигураций Symfony, Pimcore поддерживает специфические настройки для окружений в:
- https://github.com/pimcore/demo/tree/11.x/config/pimcore
- https://github.com/pimcore/demo/tree/11.x/var/config
Места хранения конфигураций и резервные варианты
Для ряда настроек, которые можно редактировать в пользовательском интерфейсе, Pimcore предлагает несколько типов хранилищ. Доступные хранилища (в порядке приоритета):
- Symfony Config (YAML-файлы, требуется пересборка контейнера)
- хранилище настроек Pimcore
Этот функционал поддерживается для следующих настроек:
- Пользовательские отчеты
- Типы документов
- Миниатюры изображений
- Миниатюры видео
- Настройки Web2print
- Предопределенные свойства
- Предопределенные метаданные ассетов
- Статические маршруты
- Перспективы
- Пользовательские представления
- Пользовательские макеты объектов
Данные сначала загружаются из контейнера (Symfony Config), и если они там отсутствуют, Pimcore пытается загрузить их из settings-store.
Вы можете изменить цель чтения/записи индивидуально для каждого типа, используя конфигурацию Symfony. Доступны следующие варианты:
symfony-config- записывает настройки в виде YAML-файлов в указанную директорию
settings-store- записывает настройки в SettingsStore
disabled(только цель записи)- запрещает редактирование и запись настроек через интерфейс
Каталог хранилища для файлов конфигурации Symfony
Каталог хранилища по умолчанию для файлов конфигурации Symfony определяется константой PIMCORE_CONFIGURATION_DIRECTORY.
Если цель чтения (read_target) не задана, используется конфигурация цели записи (write_target).
Доступные параметры для целей записи и каталогов и целей чтения и каталога для файлов конфигурации Symfony:
pimcore:
config_location:
image_thumbnails:
write_target:
type: 'symfony-config'
options:
directory: '/var/www/html/var/config/image-thumbnails'
video_thumbnails:
write_target:
type: 'disabled'
document_types:
write_target:
type: 'disabled'
predefined_properties:
write_target:
type: 'settings-store'
predefined_asset_metadata:
write_target:
type: 'symfony-config'
options:
directory: '/var/www/html/var/config/predefined_asset_metadata'
perspectives:
write_target:
type: 'symfony-config'
options:
directory: '/var/www/html/var/config/perspectives'
custom_views:
write_target:
type: 'symfony-config'
options:
directory: '/var/www/html/var/config/custom_views'
object_custom_layouts:
write_target:
type: 'symfony-config'
options:
directory: '/var/www/html/var/config/object_custom_layouts'
select_options:
write_target:
type: 'symfony-config'
options:
directory: '/var/www/html/var/config/select_options'
и для некоторых конкретных дополнительных бандлов:
pimcore_custom_reports:
config_location:
custom_reports:
write_target:
type: 'symfony-config'
pimcore_static_routes:
config_location:
staticroutes:
write_target:
type: 'symfony-config'
...
Работа в Production среде с symfony-config
При использовании цели записи symfony-config конфигурации записываются в файлы конфигурации Symfony (yaml), которые проходят повторную проверку только в режиме отладки. Таким образом, если вы меняете конфигурации в рабочей (продакшен) среде, вы не увидите никаких обновлений, потому что эти конфигурации доступны только для чтения.
Если вам нужно разрешить изменения в продакшене через интерфейс, переключите хранилище на settings-store:
Вы можете сделать это, добавив следующее в свой symfony-config, например:
pimcore:
config_location:
predefined_properties:
write_target:
type: 'settings-store'
Перевалидация существующей конфигурации
С помощью целевого параметра settings-store можно обновлять /изменять конфигурации в рабочей среде, которая, в свою очередь, повторно проверяет сгенерированные файлы, например, миниатюры изображений, миниатюры видео для последующих запросов.
Это не относится к объекту записи symfony-config, поскольку конфигурации доступны только для чтения и развертываются из другой среды. Поэтому нам нужно явно повторно проверить сгенерированные файлы либо с помощью команды, либо с помощью пользовательского скрипта.
Например, чтобы повторно проверить миниатюры изображений или видео, выполните команду pimcore:thumbnails:clear или вызовите Asset\Image\Thumbnail\Config::clearTempFiles() после внесения изменений в конфигурации миниатюр.
Решение проблем: кнопка «Сохранить» заблокирована (серая)
Пожалуйста, обратите внимание, что кнопка сохранения будет отключена (выделена серым цветом) при следующих условиях:
- когда для параметра
write_targetнамеренно установлено значениеdisabled - как указано выше в отношении рабочей среды, когда установлено значение
symfony-configи не включен режим отладки - если
write_target- этоsymfony-config, а файлyamlне существует или он недоступен для записи (в соответствии с разрешениями файловой системы). - когда
read_targetустановлен, но он не совпадает сwrite_target.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.