PHP 7.2 : adieu mcrypt, bonjour sodium

PHP 7.2 est sorti le 30 novembre. La grande nouvelle n’est pas une nouvelle fonctionnalité, c’est une suppression. mcrypt disparaît. C’est une bonne chose, même si ça ne le semble pas quand c’est vous qui devez faire la migration. Le problème mcrypt mcrypt n’est plus maintenu depuis 2007. Plus d’une décennie de stagnation dans une bibliothèque cryptographique. Dépréciée en 7.1, elle est retirée définitivement en 7.2. Son remplaçant : sodium, désormais intégré comme extension core. ...

14 janvier 2018 · 7 min · Guillaume Delré

Symfony 4.0 : Flex et la fin de la Standard Edition

Symfony 4.0 est sorti le 30 novembre 2017, le même jour que la 3.4. La date de sortie commune est à peu près la seule chose qu’ils ont en commun. 4.0, c’est une philosophie différente. La Symfony Standard Edition, ce point de départ monolithique qui embarquait tout et vous laissait retirer ce dont vous n’aviez pas besoin, a disparu. À sa place : un microframework qui grandit. Flex Symfony Flex est un plugin Composer qui change la façon dont on installe les packages Symfony. Avant Flex, ajouter un bundle impliquait : l’installer via Composer, l’enregistrer dans AppKernel.php, ajouter la config dans config/, mettre à jour le routing si nécessaire. Quatre étapes, toutes manuelles. ...

14 janvier 2018 · 5 min · Guillaume Delré

Symfony 3.4 LTS : le pont qu'on a vraiment envie de traverser

Symfony 3.4 et 4.0 sont sortis le même jour : le 30 novembre 2017. Ce n’est pas une coïncidence, c’est la stratégie. 3.4 n’est pas une version de fonctionnalités. Elle livre exactement les mêmes fonctionnalités que 3.3, plus chaque avertissement de dépréciation que 4.0 va rendre obligatoire. Son seul objectif est d’être l’outil de migration : monter de 3.3 à 3.4, corriger ce qui apparaît dans les logs, puis passer à 4.0 proprement. ...

12 janvier 2018 · 7 min · Guillaume Delré

Symfony 3.3 : quand les services ont arrêté d'être un cauchemar de configuration

Symfony 3.3 est sorti le 29 mai. C’est la version qui a changé ma façon de penser la configuration des services. Avec le recul, c’était une prévisualisation de ce que 4.0 allait adopter comme nouveau standard. Le problème de l’autowiring Avant 3.3, le DI de Symfony était puissant mais verbeux. Chaque service devait être déclaré explicitement dans services.yml avec ses arguments listés. L’autowiring existait depuis 3.1, mais il était opt-in par service et avait assez de cas limites pour vous mordre. Les équipes écrivaient soit des montagnes de YAML, soit s’appuyaient sur des bundles tiers pour réduire le bruit. ...

13 juillet 2017 · 6 min · Guillaume Delré

Contrôler un lance-missiles USB en HTTP avec FastAPI et Docker

La règle était simple : celui qui casse le build CI offre le café à l’équipe. Ça a marché un moment. Puis quelqu’un a proposé qu’on ait un retour plus immédiat. Quelque chose de physique. Quelque chose qui tire. Un Dream Cheeky Thunder a atterri sur un bureau peu après. Quatre missiles en mousse, un câble USB, et un consensus d’équipe très clair : le brancher au cluster, le câbler au pipeline de build, et laisser le CI décider qui mérite une volée. ...

21 février 2017 · 4 min · Guillaume Delré

Forcer l'UTC dans Doctrine sans toucher aux entités

Un timestamp qui revient de la base de données avec une heure de décalage. Pas à chaque fois. Uniquement quand le serveur de dev tourne en Europe/Paris et que la CI tourne en UTC. Le genre de bug qui disparaît quand on le cherche et qui revient en production un vendredi soir. Le problème n’est pas dans la logique métier. Il est dans ce que Doctrine fait discrètement avec les dates. ...

19 février 2017 · 4 min · Guillaume Delré

PHP 7.1 : un système de types plus rigoureux et les petits gains autour

PHP 7.1 est sorti le 1er décembre. Pas de titre “2x plus rapide”, pas de réécriture du moteur. Il comble les lacunes que la 7.0 avait laissées dans le système de types, et ces lacunes étaient vraiment agaçantes. Les types nullables La 7.0 permettait de déclarer string $name comme type de paramètre. Ce qu’elle ne permettait pas, c’était de dire “ça peut aussi être null”. On devait soit abandonner le type hint complètement, soit bricoler autour. La 7.1 ajoute le préfixe ? : ...

15 janvier 2017 · 4 min · Guillaume Delré

PHP 7.0 : performances, types, et les fonctionnalités qui ont marqué

PHP 7.0 est sorti le 3 décembre. Un mois et demi plus tard, j’ai migré deux projets et les résultats sont difficiles à ignorer. Le chiffre phare : 2x plus rapide que PHP 5.6. Ce n’est pas un benchmark cherry-pick — c’est la médiane sur des applications réelles. Le Zend Engine a été réécrit pour utiliser une nouvelle représentation interne des valeurs, ce qui réduit significativement l’utilisation mémoire et diminue les allocations. Sur un projet, le temps de réponse moyen a chuté de 40% sans aucune modification du code. On met à jour, et ça va plus vite. ...

17 janvier 2016 · 6 min · Guillaume Delré