Drupal 8 est arrivé le 19 novembre dernier

Le 19 novembre dernier c’était mon anniversaire (bah oui, faut bien que je pense qu’à moi, MOI aussi) et celui de Dries Buytaert et la communauté Drupal en a profité pour sortir la version 8 du CMS.

Drupal 8, cela fait longtemps que je le côtoie sans avoir jamais publié de site avec cette nouvelle mouture : on m’avait demandé de faire un audit sur le multilingue de Drupal 8 parce qu’une personne « importante » nous rendait visite et qu’il fallait montrer qu’on était à la page, 3 ans en avance… Ça c’est normal en entreprise. Je vous rassure : la personne importante n’a pas lu le rapport, peut-être mon équipe (mais pas sûr, en même temps eux avaient vraiment du boulot), mais le commanditaire du rapport non plus ne l’a jamais lu. Bon ça c’était pour ma life.

Bref, Drupal 8 est de sortie et avec plusieurs bonnes nouvelles à mon avis :

Symfony, dis moi oui !

Drupal 8 utilise pas mal des composants Symfony ce qui a plusieurs avantages :

  • on utilise des formats et des standards que tout le monde utilise et ça c’est plutôt cool,
  • ça va peut-être faire venir des développeurs Symfony,
  • l’injection de dépendance c’est lourd mais c’est tout de même cool, et puis de toute façon le cache c’est pas seulement pour les objectifs (je sais, je sors…)

Mobile First

Oui c’est seulement fin 2015 que Drupal ce met au niveau sur la problématique du mobile. Beaucoup oublient que dans Drupal, il y a n’y a pas seulement du PHP mais aussi du JavaScript et d’autres trucs très bons pour la santé, donc mangez-en… Le Front-End n’est pas à la traine.

API REST

À l’heure du tout API et des microservices, c’est juste normal que du côté de Drupal on ait amélioré ça. Cela veut dire qu’on va pouvoir créer sa structure de données via le clicodrome de Drupal et ensuite mettre cela à disposition pour d’autres clients ou applications.

Internationalisation

Beaucoup d’améliorations, c’est la partie que je connais le mieux. J’en parlerai dans un autre article mais juste une remarque : chefs de projets, CTO et autres décideurs, formez vos équipes et/ou embauchez des gens qui connaissent un peu le sujet. Le soucis du multilingue c’est que cela a des répercutions sur quasiment tout : la structure des données, le back-office mais surtout le front-office. Il ne suffit pas de se dire qu’on va juste envoyer les textes en traduction (en général au petit neveu qui a fait un stage linguistique de deux semaines en Allemagne avec sa classe de 5ème) pour que cela fonctionne. On parle de localisation, c’est-à-dire qu’il faut adapter son contenu à la langue et à la culture du public visé. Sans parler des problématiques inhérentes à la traduction (taux de foisonnement, jeu de caractères, gestion du volume et du flux de traduction)…

Bref beaucoup de nouveautés pour Drupal 8 sur lesquelles nous reviendront dans les prochaines semaines.

Le PHP – WTF du jour !

En codant ce jour pour du Drupal 7, je suis tombé des nues en découvrant ce petit plus de PHP !

$names = array('Jean-Michel', 'Jules-Édouard', TRUE);

echo in_array('Micheline' , $names) ? 'C\'est pas joli joli !' : 'Pas trouvé';
// Ce bout de code va afficher : C'est pas joli joli !

Le plus marrant pour ceux qui font du Drupal, c’est qu’apparemment dans sa version 7, Drupal ajoute TRUE à la fin du tableau des rôles utilisateurs. Bon ben, je retourne fissa chez Symfony 2 en attendant que Drupal 8 arrive…

Cacher la version de PHP et d’Apache des en-têtes

Pour savoir quelles sont les technologies utilisées par des sites Internet, j’utilise Wappalyzer. Très pratique en effet, pour voir d’un coup d’œil si un site est propulsé par Drupal, s’il utilise Apache, etc…

Wappalyzer vous affiche également la version de PHP, celle d’Apache. Ces informations sont situées dans l’en-tête de la réponse HTTP délivrée par votre serveur. En terme de sécurité, je ne trouve pas ça terrible. J’ai donc cherché à cacher ces informations et en fait ce n’est pas si compliqué.

Pour cacher la version de PHP, il suffit de passer la directive expose_php de votre fichier php.ini à Off.

expose_php =  Off

Pour cacher la version d’Apache, il faut ajouter/modifier les lignes suivantes à votre fichier de configuration Apache :

ServerTokens ProductOnly
ServerSignature Off

N’oubliez pas de redémarrer Apache et de vous référez à la doc PHP et à celle d’Apache pour en apprendre plus.

Installer Composer et le mettre à disposition de tous

Pour rappel Composer est un gestionnaire de dépendances pour PHP. Son utilisation est très répandue. On peut s’en servir par exemple pour télécharger Symfony2 ainsi que ses Vendors.

  • Système d’exploitation : Debian 7.0 Squeeze
  • Prérequis : PHP (SAPI cli) et CURL

Télécharger Composer

Placer vous dans le répertoire de votre choix. On va ensuite exécuter le script se trouvant à l’URL https://getcomposer.org/installer avec PHP

curl -s https://getcomposer.org/installer | php

Le mettre à disposition de tous

Pour que tout un chacun puisse s’en servir nous allons déplacer l’archive composer.phar dans /usr/bin

mv ./composer.phar /usr/bin/

On aurait pu lancer le téléchargement directement dans /usr/bin. Mais étant donné que c’est un dossier sensible, il vaut mieux anticiper des problèmes éventuels en travaillant dans un répertoire quelconque. Maintenant nous allons donner les droits d’exécution à tout le monde.

chmod +x /usr/bin/composer.phar

Vous pouvez adapter le CHMOD et modifier le propriétaire et le groupe au besoin. Normalement maintenant vous devriez pouvoir utiliser la commande composer.phar

Enjoy !