Import d’un site existant dans aegir depuis un dépôt git

gdo_aegir

Dans cet article, nous allons voir comment importer un site existant dans aegir depuis un dépôt git, mais tout d’abord, voici un petit préambule pour bien comprendre le vocabulaire d’aegir.

Imaginons que vous ayez un site sur monurl.fr qui pointe sur /var/www/monsite (la plateforme) dans votre vhost avec un sous-répertoire /sites/monurl.fr (le site), le tout géré par votre dépôt git sous gitlab.

Pour faire simple aegir appelle un drupal sans base de données, une plateforme et un drupal avec sa base de données, un site :

  • une plateforme au sens aegir, c’est le dépôt git d’un répetoire drupal avec sa branche courante (qu’on ne peut plus changer à postériori)
  • une site au sens aegir c’est : à l’intérieur d’une plateforme, un répertoire dans sites avec le settings.php (généré par aegir, il ne faut pas y toucher), une base de données, un alias, et un vhost

Installation d’aegir pour gérer un parc de sites Drupal

gdo_aegir

Aegir est un outil web qui permet de piloter un parc de sites Drupal. Ce qu’on fait en général via des commandes drush (drush updb, drush fra, etc…), on peut le faire via un site web directement. C’est un site Drupal, qui pilote la gestion d’autres sites Drupal. Bien sûr, on pourrait faire tout ça et même plus via des scripts ou quelques outils de supervision.

L’intérêt, c’est de donner à l’utilisateur (le client) la possibilité de créer des sites à la volé par exemple ou de lancer des opérations sur plusieurs sites à la fois sans « mettre les mains dans le cambouis ».

Améliorer Behat pour Drupal avec 3 extensions : screenshot, code coverage, et watchdog

behat-logo

Behat est très puissant pour faire des tests de non régression. Comment le rendre encore plus puissant ? Avec 3 petites extensions très pratiques pour le debug :

  1. En affichant les warning rajoutés dans le watchdog automatiquement à la fin d’un test. Très pratique pour s’assurer qu’il n’y a pas d’erreur cachées pendant l’exécution des tests
  2. En rajoutant un test de couverture du code avec xdebug et phpcov pour voir si tout est bien testé
  3. En prenant un screenshot automatique de l’étape behat si elle plante, afin de pouvoir voir où est le problème sans avoir à passer par un « Then I break »

Démarche d’amélioration des performances Drupal

Améliorer les performances d’un site (Drupal ou non) peut se révéler être une tâche complexe puisque, par définition, tous les niveaux d’architecture matérielle et logicielle sont potentiellement concernés (Apache, PHP, MySQL, infrastructure).

Une démarche rigoureuse et méthodique est impérative afin de ne pas se lancer dans des optimisations en aveugle. En voici les principales étapes :

Constater, Reproduire, Diagnostiquer, Prioriser, Corriger, Mesurer, Itérer

Pour chaque étape, nous mentionnerons certains outils classiquement utilisés, sans être exhaustif. Chacun d’entre eux mériterait un développement à part.

Drupal theme api : Hook into the theme (partie 1)

Drupal_logo

Je vous propose une série d’articles qui ont pour but de discuter de l’api Drupal dédiée au rendu et à l’affichage, afin de mieux comprendre ce processus et la manière dont s’articulent les nombreux hooks et fonctions à disposition du développeur et du thémeur.

Ces articles sont basés sur la version 7.x de Drupal. Sachez cependant qu’un certain nombre d’éléments restent très similaires voire identiques en ce qui concerne la version 8.x.

Ce premier article présentera la theme api : comment sont générés des éléments html grâce aux fonctions de thème et comment les surcharger. Un second article, toujours sur la theme layer, se focalisera sur les templates et les fonctions de preprocess. D’autres articles sont prévus afin de discuter de la render api et autres subtilités.

Drupal Commons comme solution RSE

Drupal-commons-logo

Un de nos clients envisageait de refondre son propre Réseau Social d’Entreprise réalisé à partir de modules customs. A la sortie de la version stable de Commons, il nous a demandé de réaliser  une étude de faisabilité sur les fonctionnalités apportées par celui-ci en vue d’un éventuel remplacement de son RSE existant.

Cet article restitue les éléments clés de cette analyse.