Logos eZ Sf Ibexa

Contexte et pré-requis

Cet article est le troisième de la série sur mes découvertes et retour d'expérience en tant qu'alternant. Après avoir travaillé et fait part de mes découvertes sur Wordpress et Bolt pour des clients, je vais maintenant parler d'Ibexa Content dans le cadre de la migration de notre site internet.
Actuellement notre site utilise eZ Platform 2.5 basé sur Symfony 3.4. La version 3 d'eZ Platform a été renommée Ibexa Content et est basée sur Symfony 5.3 et bientôt 5.4.

Pour cette migration, je vais utiliser les outils suivants : Docker, Docker-compose ou Symfony Client, PHP >= 7.4, Composer, MySQL/MariaDB, Node.js et Yarn.

Présentation d'eZ Platform 2.5

eZ Platform est un système de gestion de contenu (CMS) développé par eZ systems et sa communauté avec une suite d’outils flexibles dédiés pour la publication de contenus. Il s’agit de la septième génération d’eZPublish, basée sur le Framework Symfony en version 3.4 (cette version de Symfony ne sera plus maintenue fin novembre 2021).

La particularité d'eZ Platform réside dans la création de sites web complexes nécessitant un contenu structuré, une extensibilité et des performances sur le long terme. Elle dispose d’une abondance de fonctionnalités avancées par rapport à celles déjà présentes dans le back-end de son prédécesseur eZ Publish, à savoir :

  • Le dépôt de contenu multilingue géré par un User Interface.
  • Le contrôle de version
  • L’API REST et GraphQL qui va servir d’interaction avec le dépôt de contenu en utilisant JavaScript. GraphQL s’appuie sur un schéma de domaine généré automatiquement lors de l’installation d'eZ Platform.
  • L’éditeur de texte enrichi
  • La gestion SEO
  • La création de templates
  • Le moteur de recherche open source Apache SolR

Présentation d'Ibexa Content 3.3

Ibexa Content est un CMS (Content Management Structure), construit sur la technologie Ibexa DXP pour les sites à grands contenus, basée sur le Framework Symfony en version 5. Dans le cas du projet de migration pour le site web, cela fait un grand saut pour la montée en version de Symfony (problèmes d'incompatibilité des dépendances, structures du projet, utilisation de Webpack Encore pour les assets).

Nous avons déjà parlé d'Ibexa Content dans le tutoriel d'installation de la version Open Source.

Méthode de migration

Pour réaliser cette migration, nous avons procédé de la façon suivante :

  • Initialisation d'un nouveau projet tel que décrit dans notre tutoriel d'installation de la version communautaire d'Ibexa Content 3.3.
  • Installer les nouvelles versions des bundles nécessaires au projet.
  • Importation de la base de données et passage des scripts de migration eZ.
  • Récupération et mise à jour des configurations de vue avec les templates, controllers, parameterprovider, query, blocs associés : se concentrer vraiment sur les contenus et leurs affichages (Partie Front-office).
  • Faire fonctionner le back-office avec la vérification des contenus éditables, l'ajout des customs tags si disponible.

Les points d'attention liés à la migration

  • Le changement de version de Symfony (passage de la version 3 à la version 5) a un impact considérable sur la structure du projet (dépendances, suppression de la classe AppKernel.php , changement de namespace AppBundle => App ).
  • Disparition des parameters providers qui sont désormais remplacés par des variables providers.
  • L'utilisation de Webpack Encore pour le chargement des assets.
  • Les types de contenu (ContentType) placés dans plusieurs groupes provoquent des erreurs.
  • Des dépendances tierces qui ne sont plus compatibles.
  • Dans les templates Twig, des filtres modifiés (localizeddate à remplacer par format_date ) ou les fonctions renommées (exemples: path(location) devient ez_path(location) ou ez_is_field_empty remplacé par ez_field_is_empty ) demande de retravailler un grand nombre de fichiers.
  • Des notations qui ne sont plus supportées (ex : EzPublishCoreBundle::cake.html.twig => @EzPublishCore/cake.html.twig ).

Avantages / Inconvénients d'Ibexa

Ibexa Content est adapté aux sites ayant un grand volume de contenus et de visiteurs. Il est donc nécessaire de faire appel à des développeurs pour réaliser le site web.

Quels sont les avantages d'Ibexa Content ?

  • Les utilisateurs d'eZPlatform ne seront pas dépaysé car c'est le même produit.
  • Idéal pour les sites web devant gérer des types de contenus très différents.
  • Il est aisé de mettre en place un serveur de cache HTTP tel que Varnish.
  • Toute la puissance et l'extensibilité du framework Symfony.

Quels sont les inconvénients d'Ibexa Content ?

  • Nécessite des infrastructures serveurs importantes pour des sites à fort volumes de contenus.
  • Nécessité d'un développeur pour mettre en place Ibexa Content.

Conclusion

Bien que j'ai dû passer la plupart de mon temps dans le déboggage ainsi que dans la recherche d'informations (documentation, recherches Google, problèmes d'incompatibilité avec les dépendances), ce projet de migration a été pour moi une bonne expérience. Cela m'a permis de découvrir de nombreux changements dans la montée en version de Symfony et d'eZ. Cette expérience me servira prochainement pour un futur projet de migration d'un client.

De Wordpress, Bolt CMS et Ibexa Content, lequel vous semble le plus adapter à votre projet ?

Contactez-nous pour en discuter.