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

Конфигурация окружения

Специфичные для окружения конфигурации

Pimcore поддерживает различные конфигурации для разных окружений (dev, test, stage, prod и т. д.), а также пользовательские конфигурации с механизмом автоматического отката (fallback).

Pimcore базируется на окружениях Symfony с некоторыми дополнениями. Основную информацию об этом можно найти в документации Symfony.

Примечание: Установите пакет symfony/dotenv, чтобы использовать компонент Symfony DotEnv. Это позволит настраивать переменные окружения в файлах .env, или (например, в продакшн-среде) через реальные переменные окружения сервера.

Помимо стандартных конфигураций Symfony, Pimcore поддерживает специфические настройки для окружений в:

Места хранения конфигураций и резервные варианты

Для ряда настроек, которые можно редактировать в пользовательском интерфейсе, Pimcore предлагает несколько типов хранилищ. Доступные хранилища (в порядке приоритета):

Этот функционал поддерживается для следующих настроек:

  • Пользовательские отчеты
  • Типы документов
  • Миниатюры изображений
  • Миниатюры видео
  • Настройки Web2print
  • Предопределенные свойства
  • Предопределенные метаданные ассетов
  • Статические маршруты
  • Перспективы
  • Пользовательские представления
  • Пользовательские макеты объектов

Данные сначала загружаются из контейнера (Symfony Config), и если они там отсутствуют, Pimcore пытается загрузить их из settings-store.

Вы можете изменить цель чтения/записи индивидуально для каждого типа, используя конфигурацию Symfony. Доступны следующие варианты:

  • symfony-config
    • записывает настройки в виде YAML-файлов в указанную директорию
  • settings-store
  • 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.

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