linkedin-ico github-ico

Migration de property avec Sulu

sulu

C'est quoi Sulu?

Sulu CMS est une plateforme de gestion de contenu (Content Management System - CMS) construite sur le framework Symfony. Elle offre une architecture flexible, idéale pour les développeurs souhaitant créer des applications web sophistiquées et personnalisées. Sulu se distingue par sa gestion des multilinguismes, son interface d'administration intuitive et sa capacité à s'adapter à des projets complexes grâce à son système de gestion de contenu basé sur des "properties".

Comment migrer avec Sulu

La migration d'une "property" sous Sulu est un processus qui peut sembler complexe au premier abord, mais qui est en réalité assez simple à réaliser. Le processus de migration permet de modifier la structure de données sans avoir à intervenir manuellement sur chaque page, offrant ainsi une solution efficace et moins sujette aux erreurs.

Être dans la même situation que la production

La première étape cruciale consiste à s'assurer que l'environnement de développement reflète fidèlement l'état de production. Cela implique de vérifier que toutes les données et configurations sont à jour et correspondent exactement à celles en production.

Créer une classe de migration

Le cœur de la migration se fait par la création d'une classe spécifique dans le dossier "phpcr-migrations". 
Cette classe doit implémenter deux interfaces importantes : 
PHPCR\Migrations\VersionInterface et 
Symfony\Component\DependencyInjection\ContainerAwareInterface
L'implémentation de ces interfaces permet d'assurer que la classe de migration puisse interagir efficacement avec le système de gestion de contenu de Sulu et l'environnement Symfony.
Le code détaillé est sur Github

Appliquer la migration

La procédure d'application de la migration d'une "property" avec Sulu s'apparente à celle utilisée lors d'une migration avec Doctrine. Cette similarité réside dans l'utilisation d'une commande de migration spécifique qui facilite le processus. Pour mettre en œuvre la migration dans Sulu, il suffit de lancer la commande suivante :

bin/console phpcr:migrations:migrate

Cette commande déclenche le processus de migration au sein de l'écosystème Sulu, en se basant sur les instructions définies dans la classe de migration préalablement créée. Elle permet d'actualiser la structure des "properties" de manière efficace et cohérente, sans nécessiter une intervention manuelle sur chaque élément de contenu. Grâce à cette approche, les développeurs peuvent assurer que les modifications de structure sont appliquées de manière uniforme, garantissant ainsi l'intégrité et la fiabilité du projet.

En adoptant une méthode similaire à celle de Doctrine pour les migrations, Sulu CMS offre une expérience familière aux développeurs Symfony, simplifiant le processus d'adaptation et d'optimisation des structures de données spécifiques au projet.