eZ Platform v3.0 beta marks the beginning of a new journey for our product. After the successful implementation of eZ Platform v2, we are now laying the foundations for v3.0. Before developing new and exciting features, we need to focus on some long-needed cleanup and maintenance of the codebase. Therefore, we have decided that this summer fast track release will be a beta version. This transitional release lets our engineering and product teams focus on adopting Symfony 4.3, as well as supporting Symfony Flex as a standard way to structure and install the application. Although much of the work is occurring 'under the hood,' editors will be thrilled to learn that we have made some substantial enhancements to the calendar scheduler feature. The release will also provide a smooth implementation for third party Custom Field Types.
A new generation release is an opportunity for us to introduce substantial changes, that might even break compatibility with projects done with older versions of the platform. We of course avoid to do so, and when we do it we try to provide upgrade path and eventual tools to do so. Developers will be happy to hear that one of the significant changes is the adoption of Symfony 4.3 (https://symfony.com/roadmap/4.3).
Adopting a new Symfony framework
This new version of Symfony introduces a new application structure that focuses on the project's files and not the frameworks. It will be easier for developers to comprehend and use daily. One of the most significant changes for eZ Platform coming with Symfony 4.3 is being compatible with Symfony Flex.
Symfony Flex is a composer plugin that uses "recipes." The package's description to automate the configuration of a bundle in your application. If you install any package with a recipe on flex.symfony.com/ onto ezplatform v3.0 beta, the bundle is added to your kernel, the routes, and configuration to your application, and then it will work straight away. Removing the package will also revert those changes. Symfony Flex is guaranteed to make your day-to-day work, as developers and integrators, easier and more relaxing. Most importantly, the update enables our customers to follow the latest development practices from the Symfony world.
A jump to a new major framework version requires some adjustments to your organization's project. Please take a look at our documentation for information about deprecated and removed features, as well as at our project update guide to learn how to adapt your project to v3.0 beta.
You can learn more about the rationale behind changes introduced in Symfony 4 in a series of blog posts by Fabien Potencier.
Cleaner code, better maintenance
See our documentation for full information about removals and deprecations.
Signal Slots, which had been our custom layer for triggering and reacting to events, will soon be replaced with Symfony Events that you can subscribe to with Event Listeners. We are particularly happy about this change because using Symfony Events facilitates the development of custom listeners for developers who are familiar with the Symfony framework.
Additionally, where formerly only one Signal accompanied everything that was happening in the application, now two Events each, before and after, will be triggered - enabling developers to stop the propagation of a method by reacting to the first event.
Calendar Scheduler updates
The beta release also promises to provide editors some new and useful features. Editors will be excited to learn that they can easily navigate through scheduled events on the calendar tab. The calendar widget now displays in one place all planned events for a selected day, week, or month.
Editors also can easily browse through scheduled content by switching to the list view. They can also plan future publications more efficiently by viewing in the calendar custom events (holidays, important dates).
New Generic Field Types
With v3.0, we deliver a base implementation for third-party Custom Field Types without blocking their advanced capabilities. The new generic Field Type allows developers to build complex solutions on ready-to-go Field Type template quickly. It comes with the implementation of basic methods, reduces the number of classes which must be created and simplifies tagging process during the creation of custom Field Type. Our goal for this update was to make simple things simple and complex things possible. The new Platform version also brings unification of tag names by following Symfony naming convention, snake case.
Support of Solr Cloud
Another exciting feature that is included is the support of Solr Cloud. The feature has also been ported to v2.5.2, which was just released. Solr powers both search, and navigation features both of eZ Platform administration and frontend interfaces. Previously, eZ Platform relied on a single Solr server. This posed a high risk if the single Solr server ever broke down. Developers could write defensive code to mitigate this risk and ensure that the website continues to run. However, this was very time consuming and inefficient use of organizational resources.
Solr Cloud is a cluster of Solr servers. It allows developers to centralize their configuration, automatically load balance and fail-over for queries, as well as integrate ZooKeeper for cluster coordination and configuration. Additionally, it is easier to scale up and down according to the amount of traffic that you get to your website.
Adding custom parameters to online editor
V3.0 Beta will allow developers to add custom attributes (CSS styles, parameters) to online editor elements. Editors can then use these different attributes to customize the rendering of the content items they are creating. For instance, editors can select to customize the CSS style, ID and Offset of various elements. The feature has also been backported to v2.5.2.
How to update your project
Updating to a new major version can often pose a challenge, but in case of v3.0 beta, you do not need individual steps to update your database. Switching to Symfony 4 requires only adjusting your directory structure to the new project organization. Follow the project update guide to learn about all the necessary adaptations.
The beta release is an opportunity for willing users to test what are some of the capabilities that are expected to be shipped with v3.0. We want to stress that this release is not meant to be used for production purposes! The beta release is an opportunity for developers to get a feel of what the future version of eZ Platform holds.