Présentation de la nouvelle version du CMS Drupal

Mohamed Hedi KHEFACHA

Plan

  • Introduction
  • Historique
  • Statistique
  • Inconvénients
  • Pourquoi Symfony 2 ?
  • Nouveautés
  • Gestion de la configuration
  • Drupal 7 vs Drupal 8
  • Migration
  • Installation
  • Demo
  • Conclusion

Introduction

  • Drupal est la prononciation à l'anglaise du mot néerlandais "DRUPPEL" qui veut dire "GOUTTE" (comme gouttelette d'eau).

  • Drupal est un CMS qui permet de créer des applications web, des sites vitrines, catalogues et aussi des sites e-commerce

  • En 2009, il était classé 1er devant WORDPRESS et JOOMLA dans la catégorie "BEST OPEN SOURCE PHP CMS". D'autres concours aussi lui attribueront la première place devant WORDPRESS et JOOMLA.

  • En 2010 selon certaines estimations, drupal équipait environs 1% des sites web mondiaux, dont celui de la maison blanches aux USA, mais aussi de nombreux sites institutionnels et de très grandes marques.

Exemples

Sites institutionnels : 

  • La CAF
  • La Région Ile-de-France
  • Le ministère de la fonction publique
  • Le ministère du budget
  • Le gouvernement Français …

Sites de marques :

  • Société générale
  • BNP Paribas
  • Orange business service
  • SFR
  • Virgin
  • Kenzo
  • Cartier
  • Voyages-sncf …

 

Exemples

Sites associatifs :

  • Médecins sans frontières
  • Action contre la Faim …

Sites de médias :

  • Virgin radio
  • Blog officiel de Twitter
  • RFM
  • France info
  • France 24
  • Le figaro …

Réseaux sociaux :

  • Communauté de développement Twitter
  • Communauté de développement Symantec
  • Communauté de développement de Nokia …

Statistiques

Quelques statistiques:

  • Plus que 5881 modules disponibles 
  • Plus que 725 thèmes sur le site drupal.org (site de communauté drupal)
  • 7,19 millions de sites web sont en drupal
  • Plus d’1 million d’utilisateurs dont 31 000 développeurs dans plus de 230 pays.

Drupal 7 : Inconvénients

  • Une grosse consommation de ressources : L'installation de modules et les spécificités techniques de Drupal en font rapidement un CMS consommant un nombre de ressources supérieur à ses concurrents.

 

  • Lenteur : L'installation de modules parfois mal optimisés peut rendre Drupal plus lent que la moyenne de ses concurrents. Donc il faut assurer la bonne configuration des modules .
  • Véritables compétences techniques : Il demande de véritables compétences techniques et sera plus difficile à prendre en mains pour un débutant ou un non-connaisseur dans le domaine.

 

Pourquoi un framework ?

Pourquoi Symfony 2 ?

  • Une meilleure prise en main par les développeurs
  • Facilité la maintenance
  • La rapidité
  • La qualité
  • Appliquer les bonnes pratiques de développement
  • Open source
  • Programmation orientée-objet
  • Framework très populaire bénéficiant d’une communauté très active
  • Utilisation d’une variété de composants standards
  • Architecture MVC et la méthode ORM
  • Extensible et modulaire
  • Conçu pour une utilisation professionnelle
  • Puissance et performance

Nouveautés

  • Multilingue : Traduction native de tous les éléments du système Drupal à l’aide de l’interface utilisateur (connu par la communauté comme i18n).
  • Fonctionnalités mobiles natives : Personnalisation d’affichage sur tous les types de smartphones (fonctionnalité de prévisualisation de sites sur diverses tailles d’écran)
  • Interface utilisateur optimisée : Simplification des fonctionnalités permettant la réalisation rapide des actions quotidiennes.
  • Gestion de la configuration : Pouvoir transporter une configuration complète d’un
    environnement à un autre (exemple: REC vers PROD).
  • Twig : Moteur de templating 
  • Web Services: Web Service en natif permet la création et la sécurisation d’accès au contenu du Drupal et capable de fournir un flux (XML ou JSON) contenant n'importe quelle entité ou liste créée avec Views. 

Nouveautés

  • Layouts : permet de définir plusieurs architectures de page pour un même thème permettant un design à la carte, évolutif et varié.
  • Views : le module le plus fréquemment utilisé par les contributeurs enfin dans le core. C’est le couteau suisse qui permettant d’afficher des contenus Drupal, de les filtrer par contexte, de les reformater, ainsi qu’une foultitude d’options.
  • HTML5 : Utilisation conjointe du HTML5 et de Layouts permettra de gérer 
    nativement l’affichage sur mobile et tablettes, ouvrant le site à un public plus large encore.
  • jQuery : Mise à jour vers JQuery 2.0 pour une compatibilité avec les derniers effets de présentation.
  • Les composants Routing : génération d’URL optimisées pour le SEO
  • Bootstrap 

Nouveautés

  • Modernizr.js : détection de fonctionnalités HTML5/CSS3 supportées par le navigateur en cours, afin de pouvoir adapter l’affichage.
  • Underscore.js : fournit un ensemble d’utilitaires qui rajoute des fonctionnalités manquantes au javascript: 
  • Backbone.js : un framework javascript MVC

En plus de jQuery et jQuery UI, de nouvelles librairies javascript font leur apparition :

* .partition : permet de partitionner une collection de résultats en deux listes : ce qui a fonctionné et ce qui a échoué .

* .matches : une fonction qui donne un prédicat qui permet de dire si un objet donné correspond à une liste de propriétés de clé/valeur

* .now : afin d'obtenir un timestamp ...

Quelques détails

Le système de template PHPTemplate a été abandonné au profit de TWIG. Ce dernier utilise une syntaxe simple et intuitive qui ne permet plus l‘éxécution de code PHP (un plus pour la sécurité). Ajoutons que TWIG propose également un système de débogage intégré.

  • Language
  • Configurations Translation
  • Content Translation
  • Interface Translation

Utilisation twig

La conception d’un site multilingue avec Drupal 7 nécessite environ 30 modules et de nombreuses manipulations compliquées. Dans Drupal 8, toutes ces fonctionnalités (et d’autres) ont été réparties selon quatre modules:

  • To print : {{my_variable}}
  • To comment : {# Drupaling b. #}
  • To operate : {% if title %}
  • Translate : {{ 'Home'|t }}

Multilingue

Quelques détails

Dans D8, tous les changements de la configuration (des plus simples comme le nom du site jusqu’aux entités, vues, rôles utilisateurs, types de contenus, etc.) passent par une nouvelle API de configuration.

 

Gestion de la configuration

Chaque environnement (prod / préprod / dev) possêde un 2 entrepôts (2 états) :

  1. Actif (la configuration en cours)
  2. Staging (pour y mettre les modifications à venir en provenance d’un autre environnement, comme ceux de dev quand on est sur la préproduction)
  3. Par défaut, les entrepôts continuent à être stockés en BDD, mais il est possible à tout moment de les exporter / importer sous forme de fichiers.

Gestion de la configuration

Voici un exemple de ce nouveau workflow :

  • PHP template 
  • Back office non responsive 
  • Champs: modules supplémentaires
  • L'ID de session est stocké en texte entière dans la base de donnée …
  • Module views   
  • TWIG template 
  • Back office responsive 
  • E-mail/link/phone/data/time/entity reference
  • l'ID de session est haché dans la base de donnée …
  • Views dans le core   

VS

Migration D6 & D7 vers D8

L’utilisation du module « Migrate » assure des migrations plus simples et souples. Avec ce module, les migrations créent automatiquement les types de contenus nécessaires et établissent un lien entre les anciens et les nouveaux champs par défaut. 

De plus Drupal 8 permet aux utilisateurs de maintenir leurs sites en version 6 ou 7 en ligne, pendant la phase de migration vers la nouvelle version. 

Suis-je obligé de migrer ?

La migration est recommandée lorsque deux versions stables et majeures de Drupal ont été publiées. La communauté Drupal ne maintient que les 2 dernières versions.

Par exemple, lors de la sortie de Drupal 7, le support de la version 5 s’est arrêté.  Il ne sera plus possible de maintenir un site Drupal 6 et de garantir sa sécurisation.

Drupal 7 étant maintenu jusqu’à la sortie de Drupal 9 par la communauté

Migration D6 & D7 vers D8

  1. Migrate upgrade 

  2. Migrate tools 

  3. Migrate plus  

  4. Migrate drupal 

  5. Migrent

Remarque:

Il est très recommandé avant de commencer effectivement une migration, d'identifier les modules utilisés sur le site Drupal 7 et voir si ses modules disponibles avec la version 8 pour assurer la compatibilité et éviter les conflits.

Pré-requis:

  • PHP 5.5.9 ou plus
  • Backup de la base de donnée du site Drupal 7
  • La toute dernière version de Drupal 8
  • Télécharger le module Migrate UI
  • Installer et activer le module Migrate UI, qui tournera sur toutes ses diverses dépendances : 

Après l'installation du module Migrate, visitez l'interface de configuration et entrez les informations d'identification de la base de données et le chemin de votre site Drupal 7 puis appuyez sur Effectuer la mise à niveau

Migration D6 & D7 vers D8

Drupal 8 et Symfony 2

Main dans la main

Toutes les nouveautés citées jusqu’à maintenant ne reflète pas la véritable annonce de nouveau Drupal 8 avec l’intégration du Framework Symfony 2 qui offre encore plus de modularité, de robustesse et de performance avec une gestion très fine du cache. 

Environnement technique

Installation

Back office

Responsive

Conclusion

Avec tous ces changements majeurs, Drupal s'inscrit dans la continuité mais surtout dans la modernité en embrassant des tendances majeures de l'industrie comme le HTML 5, Symfony 2 et le Responsive Web Design. Flexibilité et robustesse demeurent les maîtres mots pour qualifier ce CMS d'exception.

Merci

Présentation Drupal 8

By Mohamed Hedi KHEFACHA

Présentation Drupal 8

Drupal 8 est un système de gestion de contenu (CMS) libre et open-source.

  • 1,068