Ça fait longtemps maintenant que je prône une vision du développement PHP qui utilise les bonnes pratiques de manière intelligente et mesurée, et qui repose sur quelques fondamentaux forts :
- Si vous voulez faire du Java, faites du Java. Le monde PHP s’est énormément inspiré du monde Java ces 15 dernières années, pour le meilleur et pour le pire.
- Les bonnes pratiques de Google et Facebook ne peuvent pas être les pratiques dont une startup de 15 personnes a besoin.
- Rien ne sert d’empiler les technologies juste pour dire qu’on fait les choses « comme il faut ». Il n’y a aucune gloire à créer des systèmes inutilement complexes. Aucune récompense à utiliser un framework JS pour le frontend là où de simples templates serveur répondent parfaitement au besoin.
À force d’expliquer mon point de vue oralement, il m’a paru plus efficace de le mettre par écrit. Je l’ai appelé le Manifeste PHP Way of Life, car pour moi il représente les fondamentaux de la philosophie du langage.
Pour y accéder : www.phpwayoflife.com

Les chapitres
Le Manifeste, qui a été publié en anglais uniquement pour le moment, contient 11 chapitres :
- Introduction: PHP, the Web’s Language
Retour sur les raisons qui font historiquement du PHP LE langage du Web, et quelques réflexions sur l’évolution du développement web moderne.
- Arrays: The preferred way to transfer data, simple and flexible
Pourquoi les tableaux de PHP sont un outil particulièrement efficace.
- Objects: Perfect for organizing code, best used with procedural logic
Une confrontation entre la vision « pur objet » et l’utilisation d’objets avec une approche procédurale.
- Typing: Strong in principle, adaptable in practice, but never strict
Quelles sont les forces du système de typage de PHP, et pourquoi le typage strict n’est pas une aussi bonne idée qu’on le pense.
- Web Interfaces: Server-generated HTML is key to a fast, accessible Internet
Tout ce qui fait que, pour une interface transactionnelle classique, l’utilisation de frameworks Javascript est une très mauvaise idée.
- Databases: ORMs and NoSQL look like your friends, but SQL truly is
Pourquoi l’accès aux données doit rester simple si vous ne voulez pas que ça se retourne contre vous un jour.
- Frameworks: Good servants but terrible masters
Sortir de la pensée unique qui ferait croire qu’un ou deux frameworks seraient parfaits dans l’absolu, convenant aussi bien à des équipes de 8 personnes, 80 personnes ou 250 personnes.
- Automated tests: Unit, integration, functional − Find your balance
Remettre le curseur au bon endroit, car il n’y a pas que les tests unitaires dans la vie.
- Micro-services: Highly unlikely you’ll need them
Encore une approche technique devenue à la mode pour de mauvaises raisons.
- APIs: Challenge the habits
Les manières de construire une API sont plus variées que la plupart des gens ne l’imaginent.
- Security: The Non-Negotiable Basics
En matière de sécurité, il y a des incontournables, et il faut savoir comment les implémenter intelligemment.
Le contenu
Ne croyez pas que le Manifeste n’est alimenté que par mon seul point de vue. J’ai collecté énormément de ressources bibliographiques (plus de 80 références), avec des citations provenant de Rasmus Lerdorf (créateur du langage PHP), David Heinemeier Hansson (créateur du framework Ruby on Rails), Jeff Atwood (co-créateur de StackOverflow et Discourse), Rob Pike (co-créateur du système d’exploitation Plan 9, de l’encodage UTF-8 et du langage Go), Rich Hickey (créateur du langage Clojure), Joe Armstrong (co-créateur du langage Erlang), Gina Banyard (membre de la core team PHP), Adrian Holovaty (co-créateur du framework Django), Michael Stonebraker (co-créateur de la base de données PostgreSQL), Laurie Voss (cofondateur du gestionnaire de paquets NPM), le gouvernement du Royaume-Uni, et beaucoup d’autres.
Le Manifeste ne propose pas juste des titres péremptoires ou énigmatiques. Chaque chapitre est détaillé et argumenté. Le contenu fait 65 pages au format PDF (dont 1 page de table des matières, 1 page de ressources et 5 pages de références).
Il est accessible en plusieurs formats : HTML adapté aux écrans, HTML imprimable, PDF A4 et ePub.
La suite
Le but n’est pas que le Manifeste soit juste un document statique sans suivi, mais bien qu’il s’intègre dans un tout plus grand. J’ai donc d’autres projets en cours, qui gravitent autour du Manifeste d’une manière ou d’une autre.

Pour commencer, beaucoup des idées du Manifeste se concrétisent dans le framework Temma, que j’ai créé il y a 18 ans, et qui a été utilisé par plusieurs entreprises sur plusieurs centaines de sites, certains à très fort trafic (plusieurs dizaines de millions de pages vues par mois).
Temma cherche à trouver le bon équilibre en étant plus simple à apprendre que les gros frameworks connus, et plus utile que les micro-frameworks.

Ensuite, PHP Zen est un projet en cours de réalisation, dont le but est de partager des articles intéressants qui sont alignés avec le PHP Way of Life. Pour le moment, ces articles sont partagés sur des réseaux sociaux (LinkedIn et Instagram).
Et les grincheux ?
Je suis conscient que le manifeste PHP Way of Life peut être assez clivant. En informatique, on est coutumier des guerres de clochers, donc je dois m’attendre à des remarques acerbes de la part de développeurs persuadés de connaître la seule et unique vérité.
‣ Comme ce développeur pour qui le web moderne passait forcément par un framework Javascript, disant que les templates étaient des reliques du passé. Malgré le fait que son site était purement transactionnel, il s’est retrouvé à devoir maintenir des templates Twig + du Vue.js 2 + du Nuxt.js 2 + du Vue.js 3 + du Nuxt.js 3…
‣ Ou cet autre développeur pour qui les ORM sont essentiels, parce qu’il est aujourd’hui inenvisageable de ne pas utiliser des entités. Et à force de manipuler des entités sans se soucier de leur cycle de vie, il avait une page qui faisait 6 000 requêtes SQL…
‣ Ou ce CTO pour qui ne pas utiliser les strict_types est un signe d’amateurisme, mais qui n’a pas le moindre test automatisé sur toute sa base de code…
‣ Ou ce créateur de startup, seul développeur sur son projet, qui s’est lancé dans un développement à base de micro-services. Et qui a fini par abandonner après y avoir consacré beaucoup plus de temps que prévu sans pouvoir sortir son MVP…
Bref, ceux qui me diront que je n’ai rien compris au développement moderne, je pense d’eux la même chose que de ceux qui, il y a 13 ans, me disaient que le PHP ne permet pas de faire de la qualité et n’est pas rentable (et autres joyeusetés).
Tout ça pour dire que je ne ressens pas le besoin de convaincre les gens, juste celui de partager mon expérience et ma vision des choses, parce que ça peut être utile − ne serait-ce que pour alimenter la réflexion. C’est la continuité de ce blog, quelque part.
