Logos eZ Sf Ibexa

Context and prerequisites

This article is the third in a series about my discoveries and feedback as a student. After having worked and shared my discoveries on Wordpress and Bolt for clients, I will now talk about Ibexa Content in the context of the migration of our website.

Currently our website uses eZ Platform 2.5 based on Symfony 3.4. The version 3 of eZ Platform has been renamed Ibexa Content and is based on Symfony 5.3 and soon 5.4.

For this migration, I will use the following tools : Docker, Docker-compose ou Symfony Client, PHP >= 7.4, Composer, MySQL/MariaDB, Node.js et Yarn.

eZ Platform 2.5 Overview

eZ Platform is a content management system (CMS) developed by eZ systems and its community with a suite of flexible tools dedicated to content publishing. It is the seventh generation of eZPublish, based on the Symfony Framework in version 3.4 (this version of Symfony will no longer be maintained at the end of November 2021).

The particularity of eZ Platform lies in the creation of complex websites requiring structured content, extensibility and long-term performance. It has an abundance of advanced features compared to those already present in the back-end of its predecessor eZ Publish, namely :

  • The multilingual content repository managed by a User Interface.
  • Version control
  • The REST API and GraphQL which will serve as an interaction with the content repository using JavaScript. GraphQL relies on a domain schema that is automatically generated when eZ Platform is installed.
  • The rich text editor
  • SEO management
  • Template creation
  • Apache SolR open source search engine

Ibexa Content 3.3 Overview

Ibexa Content is a CMS (Content Management Structure), built on the Ibexa DXP technology for large content sites, based on the Symfony Framework in version 5. In the case of the migration project for the website, this is a big leap for the Symfony upgrade (dependencies incompatibility issues, project structure, use of Webpack Encore for assets).

We have already talked about Ibexa Content in the installation tutorial of the Open Source version.

Migration method

To achieve this migration, we proceeded as follows:

  • Initialize a new project as described in our Ibexa Content 3.3 community version installation tutorial.
  • Install the new versions of the bundles required for the project.
  • Import the database and run the eZ migration scripts.
  • Retrieve and update the view configurations with templates, controllers, parameterprovider, queries, associated blocks: really focus on the contents and their displays (Front-office part).
  • Make the back-office work with the verification of editable contents, the addition of custom tags if available.

Points of attention related to migration

  • The Symfony version change (from version 3 to version 5) has a considerable impact on the project structure (dependencies, removal of the AppKernel.php , change of namespace AppBundle => App ).
  • Disappearance of the parameters providers which are now replaced by variables providers.
  • Using Webpack Encore to load assets.
  • Content types placed in several groups cause errors.
  • Third-party dependencies that are no longer compatible.
  • In Twig templates, modified filters (localizeddate to be replaced by format_date ) or the renamed functions (examples: path(location) becomes ez_path(location) or ez_is_field_empty replaced by ez_field_is_empty ) requires reworking a large number of files.
  • Ratings that are no longer supported (ex : EzPublishCoreBundle::cake.html.twig => @EzPublishCore/cake.html.twig ).

Advantages / Disadvantages of Ibexa

Ibexa Content is adapted to sites with a large volume of content and visitors. It is therefore necessary to call upon developers to create the website.

What are the advantages of Ibexa Content?

  • Users of eZPlatform will not feel out of place because it is the same product.
  • Ideal for websites that need to manage very different types of content.
  • It is easy to set up an HTTP cache server such as Varnish.
  • All the power and extensibility of the Symfony framework.

What are the drawbacks of Ibexa Content?

  • Requires large server infrastructures for sites with high volumes of content.
  • Need for a developer to implement Ibexa Content.

Conclusion

Although I had to spend most of my time in debugging as well as in searching for information (documentation, Google searches, dependency incompatibility issues), this migration project was a good experience for me. It allowed me to discover many changes in the Symfony and eZ version upgrade. This experience will be useful for a future migration project for a client.

From Wordpress, Bolt CMS and Ibexa Content, which one do you think is the most suitable for your project? Contact us to discuss.