Pimcore supports different configurations for different environments (dev, test, stage, prod, ...) as well as custom configurations including a fallback mechanism.
Pimcore is relying on Symfony's environments, with some extras, however all the essential information can be found in the Symfony Docs
In addition to Symfony configurations, Pimcore also supports environment specific configs for:
The environment specific config file has priority over the default config, so if your
current environment is
dev Pimcore first checks if e.g.
exists, if not the default config
var/config/image-thumbnails.php is used.
Configuration Storage Locations & Fallbacks
For certain configurations which can be edited in the user interface, Pimcore provides the possibility to configure them using various storage types. Available storages are (in priority order):
- Symfony Config (YAML, needs container rebuild)
- Pimcore Legacy PHP Array Config (deprecated)
This feature is currently supported by the following configurations:
- Custom reports
- Document types
- Image thumbnails
- Video thumbnails
- Web2Print Settings
- Predefined properties
- Predefined asset metadata
- Static Routes
- Custom views
You can change the write target individually for each type by using environment variables. The following options are available:
symfony-config- write configs as Symfony Config as YAML files to
settings-store- write configs to the
disabled- do not allow to edit/write configs at all
Available environment variables are:
PIMCORE_WRITE_TARGET_IMAGE_THUMBNAILS=settings-store PIMCORE_WRITE_TARGET_CUSTOM_REPORTS=settings-store PIMCORE_WRITE_TARGET_VIDEO_THUMBNAILS=settings-store PIMCORE_WRITE_TARGET_DOCUMENT_TYPES=settings-store PIMCORE_WRITE_TARGET_WEB_TO_PRINT=settings-store PIMCORE_WRITE_TARGET_PREDEFINED_PROPERTIES=settings-store PIMCORE_WRITE_TARGET_PREDEFINED_ASSET_METADATA=settings-store PIMCORE_WRITE_TARGET_STATICROUTES=settings-store PIMCORE_WRITE_TARGET_PERSPECTIVES=settings-store PIMCORE_WRITE_TARGET_CUSTOM_VIEWS=settings-store
Production environment with
symfony-config write target, configs are written to Symfony Config files (
yaml), which are only getting revalidated in debug mode. So if you're
changing configs in production you won't see any update, because these configs are read only.
If you'd like to allow changes in production, switch to the alternate
settings-store config storage.
You can do so by adding the following to your
.env or just set the env variable accordingly, e.g.: