Makina Blog

Le blog Makina-corpus

Gestion de configuration, migration à Drupal 8 et DrupalCommerce


Mon compte-rendu du DrupalCamp Nantes 2016

Le premier DrupalCamp depuis 2 ans, organisé du 10 au 12 juin 2016 à Nantes, a été l'occasion de constater une fois encore à quel point la communauté Drupal est soudée et partage énormément. N'ayant pu assister qu'à la première journée, je vais revenir sur les quelques points qui ont suscité le plus de discussions ou qui vont être, à mon avis, beaucoup utilisés à l'avenir.

Ce DrupalCamp était naturellement très centré sur Drupal 8.

Gestion de la configuration en Drupal 8

L'objectif de CMI

CMI, la Configuration Management Initiative, a initialement été développée pour pallier les difficultés de Drupal à déployer la configuration d'un site d'une instance de développement à une instance de production (notamment une fois le site déjà exploité en production). CMI transforme l'intégralité de la configuration du site en donnée exportable dans des fichiers Yaml, et reproduit (en allant plus loin) ce qui en Drupal 7 était réalisé par le module Features.

Le problème actuel

Si ce point (déployer un site en production, puis l'enrichir petit à petit de nouvelles configurations) fonctionne sans problème, collaborer à plusieurs développeurs sur un profil d'installation qui sera systématiquement relancé ne fonctionne pas : il faut nécessairement partir d'un dump de base de données commun pour permettre à la gestion de la configuration de Drupal 8 de correctement intégrer les données de configuration à importer. Sans cet import de base de données initial, les UUID (identifiants uniques des données de configuration) seront différents d'un site à l'autre, et l'export d'éléments de configuration d'un membre de l'équipe ne pourra être importé par un autre membre.

En juin 2016, au moment de ce Drupalcamp, plusieurs solutions permettent cependant de pallier ces défauts, notamment l'utilisation du module Configuration Update Manager qui permet d'importer des configurations indépendamment des UUIDs. Il sert de dépendance à l'ensemble des modules permettant de collaborer autour de la gestion de configuration Drupal 8, notamment Configuration development et surtout Features (qui, bien qu'étant la suite du module utilisé universellement en Drupal 7, évolue en Drupal 8 vers uniquement un gestionnaire de paquet). Mais ces solutions ne sont pas toujours entièrement satisfaisantes.

La solution (?)

Pour essayer de standardiser la communauté sur un (ou des) module(s) et surtout un processus de travail collaboratif permettant une gestion de configuration Drupal efficace, certains d'entre nous ont organisé un lightning talk (discussion improvisée en parallèle des conférences prévues dans le programme officiel) sur ce sujet.

Durant cette discussion, plusieurs personnes ont mentionné que les quelques écueils cités ci-dessus seraient corrigés dans la version 2.x-dev du cœur Drupal 8 (et donc que la version 8.2 serait complètement fonctionnelle sur ce sujet). Comme c'est actuellement le point majeur de douleur pour les développeurs Drupal, cette annonce m'a vraiment soulagé. Il ne reste plus qu'à le vérifier ;-)

Note : après vérification, il semble que les gens parlaient d'un patch qui n'a pas encore été commité : Allow a site to be installed from an existing configuration. À suivre donc.

Migration de Drupal 6 ou 7 à Drupal 8

Comme à chaque DrupalCamp en France, Aurélien Navarre présente un retour d'expérience extrêmement détaillé et très intéressant. Aujourd'hui, c'est sur la migration de la base de connaissance d'Acquia du Drupal 6 vers Drupal 8. Consulter  son diaporama en cliquant ICI. 

Principaux enseignements

  • Toujours utiliser Drush pour réaliser les migrations (options supplémentaires, de bien meilleures performances) ;
  • Utiliser les versions les plus récentes (8.x-2.x) de tous les modules car le fonctionnement de Migrate a légèrement changé entre Dupal 8.0 et 8.1 ;
  • Utiliser les modules migrate_tools (commandes drush  similaires à celles du module Migrate en Drupal 7) et migrate_upgrade (commandes drush d'upgrade) ainsi que le module du cœur Migrate Drupal ;
  • Les commandes drush disponibles permettent de faire quasiment tout le travail (sur un site simple, vous n'avez rien à coder, les commandes suffisent).

Processus de migration

La commande drush migrate-upgrade --configure-only , à lancer en premier, va générer automatiquement les fichiers de migration nécessaires à la mise à jour du cœur de Drupal (la commande complète est disponible dans le diaporama). Sans l'option configure-only, la même commande exécute la migration complète… Mais sans aucun contrôle de notre part.

Aurélien recommande alors d'utiliser la commande drush migrate-import (qui permet même de choisir les plugins à migrer, permettant de ne migrer que les blocs ou les alias d'url, par exemple).

Le reste du diaporama présente des astuces ou des commandes complètes de migration, n'hésitez pas à vous en servir de référence.

Enfin, les migrations évoluent beaucoup, donc suivez l'actualité, et notamment le blog du mainteneur principal.

DrupalCommerce 2.x pour Drupal 8

Anne-Sophie Picot présente les nouveautés actuelles et envisagées pour la refonte de Commerce pour Drupal 8.

Retrouver sa présentation (déjà donnée dans une conférence précédente) en cliquant ICI.

Un futur prometteur

De nombreuses améliorations ont été intégrées dans la suite de modules Drupal Commerce pour Drupal 8 :

  • support natif des installations multi-stores (place de marché, gestion par pays, …) ;
  • gestion plus fine des statuts de commandes (en fonction de conditions remplies ou non par divers paramètres) ;
  • support des variations de produit, toute entité Drupal 8 peut se transformer en produit ;
  • l'ajout au panier est mode d'affichage spécial de formulaire, finement configurable ;
  • création de plusieurs tunnels d'achat possibles (A/B testing, produits spéciaux, …) ;
  • gestion d'historique de taxes.

Bref, comme pour Drupal 8, énormément de fonctionnalités ont été intégrées au cœur et tirent parti des possibilités de Drupal 8, permettant des fonctionnalités e-commerces hautement personnalisables.

Un présent mitigé

Si toutes ces fonctionnalités peuvent faire naître l'enthousiasme pour la nouvelle version de Drupal Commerce, la version actuelle n'est pas du tout stable et comporte encore quelques manques (il n'existe par exemple pas de module ou d'API de paiement). C'est naturel pour une solution non stabilisée, mais cela signifie qu'il va falloir attendre quelques mois avant de réaliser des sites e-commerce avec Drupal 8. Une version bêta devrait voir le jour avant (ou au moment de) la prochaine DrupalCon.

Cependant, la solution devrait déjà être viable pour réaliser des catalogues produit sans tunnel d'achat ni paiement.

Pour suivre l'actualité, suivez le blog de l'équipe de développement.

Le pouvoir de la communauté

Cette seule journée de conférence a été, à nouveau, l'occasion de constater que la communauté facilite grandement la montée en compétence ("ensemble, on va plus loin"). En tant que développeur Drupal, vous devez savoir utiliser correctement la communauté. N'hésitez pas à aller aux prochaines rencontres dans votre ville ou aux prochaines conférences.

Merci et bravo à toute l'équipe d'organisation de ce Drupalcamp ! Retrouvez l'ensemble des présentations sur la chaîne YouTube dédiée.

Formations associées

Formations Drupal

Formation Drupal Administrateur

Paris Du 29 au 31 janvier 2025

Voir la formation

Formations Drupal

Formation Drupal Développeur

Toulouse Du 26 au 28 novembre 2024

Voir la formation

Actualités en lien

Image
Encart D7 vers Drupal 11
04/04/2024

Migration d'un site Drupal 7 en Drupal 11

Trucs, astuces et "bouts" de code pour migrer votre site web de Drupal 7 à Drupal 11. Compte-rendu d'une conférence donnée au Drupalcamp Rennes 2024.

Voir l'article
Image
Formation Migration Drupal 10
03/04/2024

Du nouveau dans notre gamme de forma­tions Drupal

Maîtri­sez le CMS Drupal de bout en bout avec notre panel complet de forma­tions couvrant la migra­tion (notre petite dernière), l’ad­mi­nis­tra­tion, le déve­lop­pe­ment et l’in­té­gra­tion Drupal. Pour deve­nir expert, plon­gez dans l’uni­vers Drupal !

Voir l'article
Image
Encart article DrupalCamp 2024
06/03/2024

Makina Corpus, parte­naire du Drupal­Camp 2024

Nous sommes fiers d’an­non­cer que Makina Corpus est le spon­sor du Drupal­Camp à Rennes. Notre expert vous y propose une confé­rence « migrer de Drupal 7 à Drupal 10 ».

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus