Summer Release: Discover eZ Platform v3.0 Beta

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 in 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.

Symphony 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

In v3.0 beta, we decided to dedicate time to cleaning our codebase by removing some outdated solutions while introducing new and modern practices. Developers will be happy to hear that we are dropping timeworn and redundant code, including the unused ezpage and ezprice Field Types, as well as code dedicated to ElasticSearch that was no finalized nor supported, and all things related to Assetic support. The process has already been initiated with the v2.5.0 LTS release when Assetic had replaced with Webpack Encore.. Additionally, the packages have been reorganized to follow a more logical and practical order. For example, REST code was removed from Kernel to a separate repository. Further enhancements include clean-up of JavaScript code style, improved naming, and reorganization of several templates and template parameters from the Back Office, as well as Twig helpers and JS event names.

See our documentation for full information about removals and deprecations.

Signal Slots

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.

If you have any questions, please feel free to drop us a comment on discuss.ezplatform.com or Feel free to reach out to us at productmanagement@ez.no.

Leave us a comment
blog comments powered by Disqus