Introduction au langage PHP7 par l'exemple

Le cours tutoriel [Introduction au langage PHP7 par l’exemple] remplace deux documents anciens :

  • l’article [Méthodologie de développement MVC d'une application web PHP4] disponible ici ;
  • le cours tutoriel [Introduction au langage PHP5 par l’exemple] disponible ici ;

[Introduction au langage PHP7 par l’exemple] présente les concepts PHP7 suivants :

  • chap 3 : les bases du langage ;
  • chap 5 : les classes ;
  • chap 6 : les interfaces ;
  • chap 7 : les exceptions et erreurs ;
  • chap 9 : les traits ;
  • chap 10 : applications en couches ;
  • chap 12 : utilisation du SGBD MySQL ;
  • chap 16 : programmation internet (HTTP, SMTP, POP, IMAP) ;
  • chap 17 : services web jSON, XML ;
  • chap 21 : XML ;

Ces chapitres constituent le cours proprement dit. Ils sont illustrés par 12 versions d’une application de calcul d’impôt qui sert de fil rouge à tout le document. Alors que le cours est illustré par des scripts simples, l’exercice d’application met en œuvre des concepts de plus en plus avancés qui font l’intérêt premier de ce document :

  • chap 4 : versions 1 et 2, implémentation du calcul d’impôt avec des scripts PHP procéduraux classiques ;
  • chap 8 : version 3, implémentation du calcul d’impôt avec des classes et l’héritage de classes ;
  • chap 11 : version 4, implémentation du calcul d’impôt avec une architecture en couches [main, métier, dao], des classes et interfaces pour implémenter chaque couche. On introduit ici la notion de programmation par interfaces qui sera conservée dans toutes les versions qui suivent ;
  • chap 13 : version 5, implémentation du calcul d’impôt avec une architecture en couches [main, métier, dao] et une base de données MySQL. On montre ici que si l’architecture en couches de la version précédente a été bien conçue, alors le changement de couche [dao] se fait sans impact sur les deux autres couches [main, métier] ;
  • chap14 et 15 : versions 6 et 7, implémentation du calcul d’impôt avec une architecture en couches et une base de données PostgreSQL. On montre ici que le changement de SGBD se fait quasiment sans impact sur les couches [main, métier, dao], ceci parce que la couche [dao] est isolée du SGBD par la couche [PDO] du SGBD. Changer de SGBD revient à changer la couche [PDO] ;
  • chap 18 et 19 : versions 8 et 9, implémentation du calcul d’impôt avec une architecture client / serveur jSON et une base de données. Grosso modo, les couches [main, métier, dao, PDO] de l’architecture précédente migrent sur un serveur en une architecture [web, métier, dao, PDO] et côté client on implémente de nouveau une architecture en couches [client, dao] destinée à dialoguer avec le serveur ;
  • chap 20 : version 10, implémentation du calcul d’impôt avec une architecture client / serveur jSON, une base de données et un serveur de cache Redis. On réutilise l’architecture précédente en y ajoutant un serveur de cache Redis qui permet à l’application serveur d’avoir une mémoire de portée [Application] (commune à tous les utilisateurs), ce que PHP n’a pas nativement ;
  • chap 22 : version 11, implémentation du calcul d’impôt avec une architecture client / serveur XML, une base de données et un serveur de cache Redis. L’architecture est identique à la précédente mais le serveur envoie du XML plutôt que du jSON ;
  • chap 23 : version 12, implémentation du calcul d’impôt avec une architecture web MVC (Model – View – Controller), une base de données et un serveur de cache Redis. Le serveur produit indifféremment et à la demande un flux jSON, XML ou HTML. On réutilise l’architecture précédente [web, métier, dao] mais là où la couche [web] était implémentée par un unique script, ici elle est structurée en architecture MVC (Modèle – Vue – Contrôleur) ;

Le document est destiné à des personnes de niveau débutant ou intermédiaire en PHP. Tout y est expliqué et détaillé.

Le document utilise divers outils :

  • [Netbeans 11] (mars 2019) pour le développement des applications PHP ;
  • [Laragon 4] qui amène avec lui : un serveur Apache 2.4, un SGBD MySQL 5.7, un interpréteur PHP7.2, un serveur de cache REDIS, un terminal, l’outil [composer] pour importer des bibliothèques PHP tierces ;
  • le SGBD [PostgreSQL 11] ;
  • [Postman] qui permet d’écrire des requêtes HTTP pour interroger un serveur jSON, XML, HTML ;
  • diverses bibliothèques PHP :

    • Symfony SwiftMailer : pour envoyer des mails ;
    • Symfony HttpClient : pour implémenter le client dans une architecture client / serveur ;
    • Symfony HttpFoundation : pour implémenter le serveur dans une architecture client / serveur ;
    • Symfony Serializer : pour sérialiser en jSON, XML, CSV divers objets PHP ;
    • Predis : un client pour le serveur REDIS ;
    • php-mime-mail-parser : pour lire des boîtes à lettres ;

Bonne lecture à tous.

Serge Tahé, juillet 2019

Pour réagir à cet article, un espace de dialogue vous est proposé sur le forum : Commentez1.

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Téléchargements

Téléchargement PDF de l'article (564 pages, 44 Mo) : http1 http2

Les exemples de l'article (1 Mo) : http1 http2

II. A lire également

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Licence Creative Commons
Le contenu de cet article est rédigé par Serge Tahé et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2019 Developpez.com.