Discover eZ Publish Platform 5.4 "Castor"
2nd December 2014
eZ Publish Platform 5.4 LTS is our last 5.x enterprise release before we launched eZ Platform and eZ Studio end of 2015, based on the Platform parts that have been introduced and matured during the 5.x releases starting with 5.0 two years ago.
5.4 being the last 5.x release is the recommended release to use for migrating to eZ Platform and eZ Studio. To make it the best release to use for this migration it is supported all the way until 2021 (see service life page for details).
As of 2017 support for "Legacy Bridge" with eZ Platform 1.x and 2.x was officially added, making statement above is not 100% accurate anymore. Most feature rich release to use for migration is now eZ Platform v2 + legacy bridge, it gives you:
However as it requires PHP 7.1, if you intend to use legacy bridge and legacy during migration phase, 5.4 (eZ Publish Enterprise v5.4.7 and higher) and higher can be a good stepping stone for getting your legacy code to work properly on PHP7. And in case you haven't moved to bridged setup yet; will avoid any performance degradation thanks to PHP7 once you make the move.
5.4 introduces several new features which makes it easier to use, faster to develop on and also continues to improve performance.
Like earlier 5.x releases for this release we have heavily contributed to existing projects in the Symfony ecosystem to bundle powerful components under the hood which together takes extensibility in eZ Publish Platform to a new level. These thrid-party libraries and Bundles are fully supported as part of your Enterprise subscription, whiting the subsets of our supported platform requirements.
Batteries included: Running on 2.7 LTS
Given the theme of this release compared to 5.3 is to provider access to all the latests features and be as close to what you would expect from eZ Platform next year, we have during 2015 updated Symfony until reaching the 2.7 LTS that will serve as the Symfoy version for eZ Publish Platform 5.4.
New features since Symfony 2.3 LTS (the version bundled with eZ Publish 5.3):
- Symfony 2.4
- Symfony 2.5 (version bundled with eZ Publish Platform 5.4.0)
- Symfony 2.6 (part of eZ Publish Platform 5.4.1 update)
- Symfony 2.7 LTS (part of eZ Publish Platform 5.4.3 update)
Improved Cluster system
5.4 completes the effort to migrate the Clustering system to be native Symfony based implementation, while 5.1 took care about caching, both persistence and view (HttpCache), 5.4 takes care about binary file storage.
Note: Both content/download and the script to "clusterize" a installation is currently powered by legacy (4.x) stack.
Native IO support, using Flysystem as a default handler
Handling of binary files input/output is now native. The default configuration uses thephpleague/flysystem, an abstract Flysystem library. This will allow eZ Platform to support all kind of solutions for binary storage in the future.
- Pull-request: ezsystems/ezpublish-kernel#1017
- JIRA issue: EZP-23328 - Split the IO handler interface Closed
- Documentation: https://doc.ez.no/display/EZP/Binary+files+URL+handling
Native support for legacy DFS cluster
Building on top of the Native IO system, a legacy metadata handler has been added, compatible with the legacy database, the official solution for multi-server eZ Publish 4.x and 5.x. This avoids the overhead of legacy fallbacks for binary file lookups in 5.4.
- Pull-request: ezsystems/ezpublish-kernel#1031
- JIRA issue: EZP-23437 - Finish the native DFS IO metadata handler Closed
- Documentation: https://doc.ez.no/display/EZP/Legacy+DFS+cluster
The revamp of the IO architecture brings much flexibility in how URL of images and binary files are handled. It is now very easy to serve images from a static server by means of semantic configuration.
- Pull-request: ezsystems/ezpublish-kernel#1039
- JIRA issue: EZP-23441 - IO Url decorator configuration Closed
- Documentation: Binary files URL handling
New ImageAlias system using Imagine
Image alias system can be considered as one of the oldest features in eZ Publish. It is a very flexible mechanism for managing content images and has long proven its efficiency. For 5.4 we have migrated the feature to nbeing Symfony based using LiipImagineBundle and Imagine library. This allows for new functionality in terms of extensibility for develipng your own filters and built in support for image handling via GD (default), ImageMagick (through Imagick PHP extension) and GraphicsMagick (through Gmagick PHP extension).
- Blog post: New in eZ 5.4: Image alias system revamped
Improved HTTPCache system using FOSHTTPCache
Being built on top of Symfony, a HTTP framework, Varnish support in eZ Publish is implicit. In 5.2 we introduced context-aware Http cache, allowing cache to be shared even for authenticated users. Version 5.4 goes one step further, adding native support for Varnish 4, and more.
- Blog post: New in eZ 5.4: HTTP cache reloaded
SiteAccess aware "dynamic settings injection"
For those that have already started to create services in Symfony with eZ Publish Platform and encountered having to read SiteAccess settings, you have up until this point had to depend on a service called ConfigResolver which would allow you to lookup settings depending on the currently SiteAccess. However as of 5.4 this is no longer necessary, with a new syntax your able to specify the settings you want in normal service configuration and get the resulting scalar value directly in your service.
- Blog post: New in eZ 5.4: Dynamic settings injection
Improved Search API Performance
eZ Publish Platform 5.4 and 5.3.3 included noticeable (significant when using several languages) performance improvements when using the Platform Search API.
- Blog post: http://share.ez.no/blogs/core-development-team/new-in-5.3.3-and-5.4-improved-api-performance
- Some further fixes in 5.4.x: EZP-24915 - Solr Search Engine: cleanup structure and use standard bundle naming Closed EZP-24206 - As a Developer I want faster search, using spi cache & indexed columns Closed EZP-24047 - Allow skipping count db query when using SearchService against database Closed
Added during 2015
5.4 will as mentioned in intro receive additional feature, and soft API deprecation backports from eZ Platform development during 2015, the main once are mentioned here:
Improve Search Engine
Search in "Platform Stack"'s Public Search API is powering any kind of query against the eZ content repository, user search as well as queries to generate menus and list of content. It has from the start been designed to allow transparently being able to be powered by other search backends then the database with no affect on your code.
With the introduction of eZ Publish Platform 5.4.5 we added a new Solr powered Solr Search Engine, Solr itself has built in query cache, support for scaling out load and will give you both better search performance for advance queries, and allow you to offload your database to deal with what it should mainly care about: Allowing you to create and publish content.
As of 5.4.5 issues with the new image alias system regarding image alias purging has been resolved, and new way of purging aliases have been documented here: Image alias handling
- ez_field_name, ez_field_description and ez_trans_prop Twig helpers
- eZ Matrix FieldType added as a optional community bundle
- eZ Price FieldType added as a optional community bundle
- EZP-22523 - Support locking with Memcached SessionHandler Closed
- eZ Find now using Solr 4.10.1
- Demo Bundle:
- Search page using Repository API
- Breadcrumbs now using whiteoctober/breadcrumbs-bundle
- Menu now using knplabs/knp-menu-bundle
- crevillo ( "Winner of the 5.4 contributor award" )
In addition, ezpublish-legacy is still receiving a lot of pull requests. The equally brave contributors to this part of the release can be found here.
5.4.0 Full Changelog
For the full 5.4 changelog please refer to the 5.4.0 Changelog dedicated page.
5.4 Known issues
The complete list of know issues is available in the 5.4 Known issues page.