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.
Comment: Added virtual url alias note.


This page represents a comparison between Legacy Stack Stack (aka "4.x" stack) vs New Platform Stack (aka "5.x"- previously referred to as "Symfony", "new" or "6.x" - stack); it will be udated updated as new stack maturesfeatures are added. Note: Features mentioned on the black list are still available in 5.x, but via legacy kernel so you will need to use "pure legacy" or a mixed setup using "legacy fallbacks". 


5.x Feature4.x FeatureNote/Limitation
Content Model
5.x aimed at not adding any features in the content/data model that would lead to backwards compatibility breaks, new features will instead be introduced when we reach 6.x "eZ Platform 1.0" and beyond.
Content*(Content) Object


(Content Relations) Relation(Object Relations) Relation 
Field(ContentObject) AttributeMissing FieldTypes will cause eZ Publish to return exception, this can be avoided by implementing<TODO:Add link when article on this> either implementing the FieldType or configuring it as "NullType" FieldTypeDataTypeif you want to just quickly ignore it for now in your front end.
Field TypeData TypeSee FieldTypes reference for list of supported types, known unsupported FieldTypes are mentioned in Known issues




ContentTypeContent Type(Content) Class FieldDefinition
Field Definition(Content) Class Attribute FieldGroups
Field Groups(Content) Class Attribute Grouping ObjectState
Object StateObjectState UrlAlias
Url Alias  UrlWildcardWhen following a virtual url alias ("nop:") in legacy, it will return an "Object not found" page. On Plaform it will redirect to the home page.
Url Wildcard  
User  UserGroup
User Group Can by design (and intention) only have one location in 5.x when using Public API UserService
Policy Limitation  
Role Limitation  
Role Assignment Currently not possible to delete specific assignment by id, can be deleted by Role and UserUntil eZ Platform 2015.09.01 there was no exposed unique id for Role Assignments making it hard to delete a specific assignment.
Public APIn/aLegacy/4.x does not have a official public API, almost all internal functions are exposes publicly
REST API 5.1 and higher includes a working read/write REST v2 API, 4.x only had a readonly REST v1 API as of 4.5
Development environmentDevelopment modeIn 5.x this is provided by Symfony, and web debugger is extended by eZ Publish, additional debugging planned and in progress as "pull request".
Web stack 5.x web stack is Symfony with several eZ features on top
(Twig) Template system(eZ) Template system 
View ProviderOverride systemRestricted to viewLocation in 5.0, viewContent added in 5.1, for changing presentation logic.
Controller overriden/a5.2 added feature for being able to also use override system of View Provider to also be able to override content controller under your own conditions to be able to modify behavior.
Theme systemDesign systemPlanned to use LiipThemeBundle, potentially in version 5.3.Basic template/ bundle inheritance supported in Symfony, full siteaccess aware design overrides like in legacy planned for future release.
HTTP CacheView- / Static- CacheFor anonymous users with content aware caching since 5.0, also for logged in users with context aware caching since 5.2
SiteAccessSite Access  Site(Access)GroupingSite accessCustom Url, host, port and combination matching to a specific set of settings
Site Access Groupn/aNew in 5.x, grouping of related SiteAccesses and common settings for them, typically used to denote a "Site"
CSRFeZ FormTokenProvided by Symfony
Render + Query / API usefetch functionsCombining the render functionality of Symfony with Override system and API you are able to create reusable views of your content similarly to how you would use fetch functions in the past, but getting cache and view / logic separation handled in a native way.
Persistence cacheCluster- / Class- / ClassAttribute- / var- / "Global"- cacheIntroduced in 5.1, multi repository (aka multi-db) setups support added in 5.2.
IOCluster (-ing of files)Currently uses 4.x cluster system, new and simpler file clustering is planned for 6.x.Multi Repository5.0-5.3 uses legacy cluster system. New improved clustering system using Flysystem introduced in 5.4 using same paths as legacy for compatibility, path layout improved in eZ Platform 15.09 and higher.
Multi repositoryMulti-dbSince 5.0, Persistence cache does not support this in 5.1Supported, however see note on "Persistence cache", as of 5.3 with own "repository" configuration.

\* When referring a specific instance of any of the content model entries, either "object" or "item" is normal to append depending on context. In our BDD specifications the domain names have "object" appended to them forming "Content object(s)", "Location object(s)" and so on. 

Known missing in


Platform stack (black/grey list):

Note: Missing integration doesn't mean the system can not use the feature in a new installation relying on the new stack, but if it needs, it shall rely on a fallback to the legacy stack or features available in Symfony bundles. For instance: a website with a shop system could be done in twig and rely on legacy only for the fallback for shop parts.

RatingUser Rating not currently supported by API (the service to deal with ratings, rating field type already exists), planned to be implemented later when some convention for FieldType provided API's are established.

Solutions from community exists for the missing functionality:
ShopNo shop or field(/data) types related to shop currently supported by API, see Known issues. This is planned for "6eZ Platform 1.x" or a release shortly thereafter, it will most likely use parts of Sylus for this functionality.
eZCommentezcomments is not supported by API, and is not planned to be supported either. Instead of having it part of the API, it was replaced in 5.2 with a CommentsBundle that will provide an agnostic system to integrate 3rd party comment services. Out of the box supporting Disqus and Facebook integration but can via custom integration can also work with other 3rd party systems (example: service, content model based comments or even ezcomments)
Content EditingContent editing module is not implemented yet, but custom needs can for instance be solved with Public API+Symfony controllers or use of javascript REST client + REST API.
Module PermissionsController / Bundle Permissions is not fully integrated with eZ Publish Repository permission system yet, currently standard Symfony firewall rules need to be used. Public API however has full support for permissions and limitations, and is as of 5.2 known to support legacy most edge cases.
UrlAlias RoutingUrlAlias has the same model as before and hence does not support routing directly to a bundle:controller:action
WorkflowPlanned for future version, see Shop. Simple workflows already possible by using Symfony evens and Public API "Signals".
Information CollectorPlanned as a Form builder UI basically using Symfony Forms + swiftmailer for mail transport, might reuse content types similarly to how Information Collector did it. Also see Form tutorial [], for how to create forms with Symfony and eZ Publish 5.x.
Package systemPlanned to return as a import/export system which uses either API or SPI directly to replicate some or full amount of content from one repository to another, preferred format: XML using XML reader/writer.
Menu managementNot currently planned, might come back in the form of page layout designer (using similar concepts as Page FieldType).Menu system in Platform will use KnpMenu bundle, a light version is scheduled for 5.3 while a more deep integration is planned for 5.4.
PDF ExportNot currently planned, could be re-implemented outside of Core
RSS feedsCurrently no API for managing RSS feeds, REST view can be used as basis of feeds.
Frontend Editing

See "Content Editing".

Be aware that eZ Flow timeline feature is not available in the legacy admin (only in front end editing), hence not usable on the new stack.

PreviewPlanned for Comes with 5.3, versions before that uses legacy for preview.
SearchSearch API exists, but front end is currently using legacy fallback (ezfind & ezsearch) and 5.x Search SPI API uses SQL for now while Solr implementation is currently work in progress but rapidly maturing as of 5.2.will be added in 2014.
User moduleUser login, login handlers and SSO handlers uses Symfony authentication system as of 5.3, change-password, forgot-password, register, profile and editing currently uses legacy fallback, planned for 5.3
oAuth 2.0oAuth 1.0 supported in REST v1 in legacy, planned for new stack and REST v2 for future 5.x version.
Fetch aliasPlanned for future version as a way to specify a query with support for dynamic variables given to it. Currently also possible by means of OOP extending existing query functionality.
Extensions(aka Bundles)
eZ TagsPlanned for future 5.x version, still community supported in legacy stack on 5.x.
eZ SIeZ SI is purely legacy, not required in Symfony as it support ESI natively. ez SI is still supported in legacy stack on 5.x.
eZ Content stagingNo equivalent yet on the new stack, still supported in legacy stack on 5.x.
eZ Style editorNo equivalent on the new stack, still supported in legacy stack on 5.x up until 5.1.
eZ SurveyNo equivalent yet on the new stack, still supported in legacy stack on 5.x.
*For other extensions still supported on legacy, see