Global navigation

   Documentation Center
   eZ Studio & eZ Platform
     User Manual
     Technical Manual
   eZ Publish 4.x / legacy

eZ Publish (5.x)

eZ Publish 5.x | For eZ Platform & eZ Studio topics see Technical manual and User manual, for eZ Publish 4.x and Legacy topics see eZ Publish legacy

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


eZ Publish Platform 5.2 is a STS (Short term supported) release towards 5.3 LTS (Long term supported) which enhances several aspects of the 5.x kernel for usability and extensibility, in addition to additional performance improvements on top of what 5.1 deliveredThe main topic of 5.2 has been to improved a lot in terms of building websites, DemoBundle should now serve as an good example.

5.2 is on a direct path to 5.3LTS

Even if you plan to launch on 5.3 LTS, no worries, we plan to add richer composer support in the next couple of months providing you a more streamlined update process allowing you to start using 5.2 right now.

5.2 Features

5.2 introduces several new features which makes it easier to use, faster to develop on and also improves performance across the board. Performance tests using jMeter* internally have shown up to 25% improvement (from 361 to 452) to requests per seconds when testing on pure new stack using eZ Demo, while also improving legacy fallback performance 18% on ezflow (from 37 to 43 requests per second).


With eZ Publish Platform 5.2, new stack's HTTP cache is finally on par and beyond what was possible in eZ Publish Platform 4.x/legacy. With UserHash, by default all internal controllers, including the ViewController, will return cacheable responses, based on user access rules. This behavior is also applicable to custom controllers by making their response vary on X-User-Hash header. Moreover, UserHash generation, initially based on current user's assigned roles and policies, is extensible.


Have you ever been missing a way to extend the provided content controller? Had needs to do custom cache logic and been missing the good old cache_ttl = 0 hack?
5.2 brings with it a powerful way to use the existing override system to, instead of overriding just a template, override the whole controller. This allows you to extend the built-in controller and for instance get full access to tune the cache headers for a specific content type that has different use than normal content, or just enrich the final template.

API Signals listenable, also via Symfony event system


This release resolves a limitation with persistence caching introduced in 5.1, a new caching service "ezpublish.cache_pool" takes a siteaccess group setting "cache_pool" into consideration for selecting cache service, and hence can be configured with multi repository setups in mind. In addition you can now safely reuse this cache pool as the persistence cache is prefixed within "spi" cache key and will not clear your data if you reuse it.


  • Updated documentation on reusing the cache service
  • Updated documentation on configuring multi repository setup
  • Original pull-request
  • Support for more than 30 languages

    With 64-bits servers now being common, this release takes advantage of that if present and provides support for up to 62 languages on 64-bits environments and 30 languages on 32-bits platforms. This feature is supported across both Symfony stack and legacy stack, and is accomplished by increasing the size of the integer field used for language bit masks. Improved storage engines still has the possibility to provide even more languages on pure Symfony stack in the future.


  • JIRA issue
  • Original Pull requests: legacy, 5.x
  • Extended support for comments with CommentsBundle

    Brand new CommendsBundle provides an abstracted way to display comments. It is provider based, which means that it is open to any kind of commenting system.

    It has native support for Disqus and Facebook comments.


  • CommentsBundle
  • Documentation
  • Pagerfanta support for pagination

    Pagination can easily become cumbersome when done by hand. Pagerfanta is a powerful library for object oriented pagination, standard in the Symfony world. eZ Publish Platform 5.2 comes with native support of PagerFanta, with dedicated adapters.


  • How to paginate API search results
  • Initial pull-request
  • External links

  • Custom tags for XMLText field type

    3rd party custom tags support have been greatly improved and implementation is now much easier. It is now possible add a custom XSL stylesheet to the main one and to assign a priority. This also makes it possible to easily override existing eZXML tags rendering.


  • How to implement a Custom Tag for XMLText FieldType
  • Initial pull-request
  • ...

    Configurable front controller

    The standard symfony like index*.php files can now be configured using environment variables, no need to change the file anymore.


    Miscellaneous helpers

    Various Twig helpers were added to ease daily tasks, such as:


  • ez_content_name, to display a Content name in the current language.
  • ez_field_value, to get a Field value in the current language.
  • ez_is_field_empty, to check if a given field is empty for the current language.