Navigation
eZ Documentation Center
 

This is outdated documentation made for eZ Publish Platform 5.2. It is being moved into the eZ Publish 5.x documentation, so please go there for most up-to-date documentation.

Skip to end of metadata
Go to start of metadata

 

For better integration between 5.2 (symfony based) kernel and legacy (4.x) kernel, injection is used to inject settings, session and current siteaccess from 5.2 into legacy using an event: kernel.event_subscriber


Injected settings

Several settings are injected to avoid having to duplicate settings across new and old kernel, this is done in eZ\Bundle\EzPublishLegacyBundle\LegacyMapper\Configuration.
For mappings below, yml settings prefixed with ezpublish are system settings, while the rest are settings you can define pr siteaccess.

Database settings

The settings for "Server", "Port", "User", "Password", "Database" and "DatabaseImplementation" is set based on the current settings in your yml files, either from the explicit settings defined below, or the "dsn"

Mapping:

ymlsite.ini [DatabaseSettings]
serverServer
portPort
userUser
passwordPassword
database_nameDatabase
typeDatabaseImplementation

 

Storage settings

The settings for "VarDir" and "StorageDir" is set based on current settings in your yml files as shown below.

Mapping:

ymlsite.ini [FileSettings]
var_dirVarDir
storage_dirStorageDir

 

Image settings

Some of the settings for image sub system is set based on your yml files as shown below.

Mapping:

ymlimage.ini
ezpublish.image.temporary_dir[FileSettings]\TemporaryDir
ezpublish.image.published_images_dir[FileSettings]\PublishedImages
ezpublish.image.versioned_images_dir[FileSettings]\VersionedImages
image_variations[FileSettings]\AliasList
ezpublish.image.imagemagick.enabled[ImageMagick]\IsEnabled
ezpublish.image.imagemagick.executable_path[ImageMagick]\ExecutablePath
ezpublish.image.imagemagick.executable[ImageMagick]\Executable
imagemagick.pre_parameters[ImageMagick]\PreParameters
imagemagick.post_parameters[ImageMagick]\PostParameters
ezpublish.image.imagemagick.filters[ImageMagick]\Filters

 

Using ImageMagick filters

The following block shows a valid ImageMagick filters usage example for ezpublish.yml:

ImageMagick filters usage example

Since ImageMagick filters usage changed from eZ Publish 4.x versions you can find the list of filters existing by default to use eZ Publish 5.2:

ImageMagick filters list for yml
sharpen: "-sharpen 0.5"
geometry/scale: "-geometry {1}x{2}"
geometry/scalewidth: "-geometry {1}"
geometry/scaleheight: "-geometry x{1}"
geometry/scaledownonly: "-geometry {1}x{2}>"
geometry/scalewidthdownonly: "-geometry {1}>"
geometry/scaleheightdownonly: "-geometry x{1}>"
geometry/scaleexact: "-geometry {1}x{2}!"
geometry/scalepercent: "-geometry {1}x{2}"
geometry/crop: "-crop {1}x{2}+{3}+{4}"
filter/noise: "-noise {1}"
filter/swirl: "-swirl {1}"
colorspace/gray: "-colorspace GRAY"
colorspace/transparent: "-colorspace Transparent"
colorspace: "-colorspace {1}"
border: "-border {1}x{2}"
border/color: "-bordercolor rgb({1},{2},{3})"
border/width: "-borderwidth {1}"
flatten: "-flatten"

resize: "-resize {1}"

For more details on setting ImageMagick filters on image.ini please refer to the [imagemagick] / filters documentation.

Extending injected settings

It's possible to add your own kernel event subscriber and also inject your own settings by following how it is done in LegacyMapper\Configuration, and then at the end merge it with existing injected settings like so:

injected-settings

Injected Behavior

In addition to injected settings, some injection of behavior is also performed.

eZFormToken (CSRF) integration

This feature is available since eZ Publish 5.1 (2013.01)

If your config.yml setting have framework.csrf_protection.enabled set to true, then both kernel.secret and framework.csrf_protection.field_name will be sent to ezxFormToken class so csrf protection in legacy uses the same token and form field name.

By making sure all your Symfony forms uses the provided csrf protection, forms with intention=legacy can be setup to send data to legacy kernel:

framework.csrf_protection.field_name shouldn't be changed as that would prevent eZFormToken from working with most AJAX custom code

ezpEvent (Cache clear) integration

A listener is setup for both content/cache and content/cache/all to make sure Symfony (Internal proxy or Varnish with custom vcl) HTTP cache is cleared when cache is cleared in eZ Publish admin interface. 

 

  • No labels