vendredi 1 décembre 2017

PHP 7.2 est là !

Ca y est, PHP 7.2 est disponible !

Voilà une liste des principales nouveautés :
  • Convert numeric keys in object/array casts : correction d'un gros bug dans le cast des clefs d'un tableau, quand on convertit un tableau en objet, et un objet en tableau.
  • Counting of non-countable objects : ajout d'une E_WARNING quand on appelle count() sur un objet qui n'implément pas \Countable. Continue de retourner 1 dans ce cas (qui ne correspond à rien), pour garder la compatibilité.
  • Object typehint : ajout du type hint object, qu'on peut donc utiliser dans la signature d'une méthode par exemple, pour indiquer qu'une variable est un object dont ne connait pas la classe. Il ne manquait quasiment que ça ! Plus que le typage des propriétés, et peut-être des variables, et on sera enfin débarassé de toutes ces PHPDoc ;).
  • Migration Hash Context from Resource to Object : enfin une meilleure gestion des resources, qui sont des objets particuliers.
  • Argon2 Password Hash : ajout de Argon2 comme encryptage disponible.
  • Improved SSL / TLS constants : évolution dans la gestion de TLS, qui privilégie la sécurité à la compatibilité entre les versions de PHP.
  • Deprecate (then Remove) Mcrypt : mcrypt, librairie d'encryptage qui était intégrée au noyau de PHP, n'a plus été mise à jour depuis 2007. Elle est donc supprimée du noyau de PHP 7.2, mais reste disponible via PEAR.
  • Make Libsodium a Core Extension : intégration de la librairie de cryptage Sodium dans le noyau de PHP 7.2.

PHP 7.2 devrait être installable facilement sous Linux via le package ondrej, qui nous fournit depuis quelques années une installation facile de plusieurs versions de PHP en parallèle, toujours à jours.

Changelog PHP 7.2

Symfony 4 est là !

Ca y est, Symfony 4 est disponible !

Parmi les grosses nouveautés :
  • Symfony Flex : installation plus rapide des dépendances. Pour l'instant je suis pas vraiment convaincu, l'installation n'étant déjà pas compliquée, et ne se fait pas tous les jours. Pas sur que ça change réellement quelque chose, une fois la hype de la 1ère installation passée.
  • Auto-registered & autowired services : définition automatique des services, en fonction des paramètres attendus dans le constructeur par exemple. Pratique pour ne plus avoir de fichiers de config complexes, le revers de la médaille c'est qu'on a encore une couche de magie supplémentaire. A voir !
  • Installation plus light : Symfony 4 est 70% plus léger que Symfony 3.4 à l'installation. Beaucoup de dépendances pas forcément utiles à tous les projets ne sont pas installées par défaut. Ca, c'est top !
  • Performances : benchmark #1, benchmark #2, benchmark #3. C'est en bonne voie, mais concrètement, les benchmarks n'indiquent pas de réelles améliorations en prod. A voir quand phpbenchmarks.com aura fait ses benchmarks pour comparer.
  • Directory structure : pas mal de modifications dans l'architecture des répertoires du projet (pas de Symfony ou des bundles). Ca ressemble plus à du conventionnel, orientation bundle-less pour notre projet (depuis le temps qu'ils veulent se débarasser de ça !), etc. A voir ce que ça va nous apporter, en tout cas l'idée d'être plus conventionnel, oui !
Annonce de la sortie de Symfony 4
Changelog Symfony 4
Symfony 3.4 (Symfony 4 avec les deprecated)