Skip to content

25. Conclusion

Ce document a présenté le langage PHP 8 au travers de nombreux scripts et d'un fil rouge, le calcul de l'impôt sur le revenu, construit en 13 versions :

  • les versions 1 et 2 écrivent le calcul avec des fonctions et des fichiers texte ou JSON ;
  • la version 3 l'écrit avec des classes, et la version 4 l'organise en couches [dao] / [métier] / [console], testées avec [PHPUnit] ;
  • les versions 5 à 7 vont chercher les données fiscales dans une base de données [MySQL], puis [PostgreSQL], puis dans l'une ou l'autre selon un simple fichier de configuration ;
  • les versions 8 à 11 transforment le calcul en service web, avec un client console : authentification, sessions, journalisation, envoi de courriels à l'administrateur, cache [Redis], réponses JSON puis XML ;
  • la version 12 est une application web MVC qui sait répondre en JSON, en XML ou en HTML, avec son client console ;
  • la version 13 protège les fichiers de l'application en ne laissant visible du web que le dossier [public] .

Chemin faisant, nous avons rencontré l'essentiel de ce qu'apporte PHP 8 par rapport à PHP 7 : le typage strict et les types des paramètres, des résultats et des attributs ; les classes et attributs en lecture seule, la promotion des paramètres du constructeur, les énumérations, les crochets de propriétés et la visibilité asymétrique de PHP 8.4 ; l'expression [match], l'opérateur nullsafe, les arguments nommés, l'opérateur pipe de PHP 8.5 ; les erreurs devenues exceptions ; les nouvelles API [PDO] et [DOM]. Nous avons aussi vu, à chaque fois, ce que PHP a abandonné : aucun des scripts de ce document n'affiche de message [Deprecated] avec PHP 8.5.

L'architecture du serveur de la version 12 (un contrôleur principal, des contrôleurs secondaires, des couches [métier] et [dao], des réponses JSON, XML ou HTML) est celle des frameworks web PHP modernes, comme [Symfony] ou [Laravel], dont nous avons d'ailleurs utilisé quelques composants ([HttpFoundation], [HttpClient], [Mailer]). Le lecteur qui a suivi ce cours a les bases pour aborder l'un de ces frameworks.

Le service web JSON de la version 12 peut aussi avoir d'autres clients que le client console écrit en PHP : un client JavaScript exécuté par un navigateur, une application mobile… C'est l'architecture client / serveur présentée dans l'introduction de ce document.

Les cours de Serge Tahé sont disponibles sur le site https://stahe.github.io.