consultant web

Les meilleures ressources pour apprendre PHP 8

Soumis par Yann Faurie dim 20/02/2022 - 16:29

PHP est un langage informatique dont j'ai entendu parler la première fois en 1998 à Londres. Un de mes amis travaillait sur le site d'un label de musique, et je lui avait dit que je faisais des sites pour mon groupe, puis le label que nous étions en train de lancer. Plus tard j'ai commencé à avoir d'autres opportunités de création de site. Je lui ai exposé ma problématique de réaliser le site d'un disquaire qui voulait un catalogue, et j'étais parti sur des jeux de cadres (frames et framset) avec un tri par lettre alphabétique dans le cadre de navigation et le contenu dans la partie centrale. C'est là qu'il m'a recommandé de créer une base de données et de l'adresser avec PHP.

Dans la plupart des histoires, on dirait "the rest is history". Impliquant que depuis, j'ai fait du développement web avec PHP pendant plus de 20 ans.

En fait, non. Mon parcours professionnel a toujours été plus généraliste, touche-à-tout. Je n'ai jamais été recruté en tant que développeur web, et je n'ai fait que de rares développements (comme un système de newsletter en 2004 pour un label) en tant qu'indépendant. Par contre, j'ai fait du test, de l'analyse fonctionnelle, de la rédaction technique...

Introduction à la programmation PHP 8

Je ne souhaite pas entrer dans une querelle de développeurs ici avec cet article. Que PHP soit meilleur, plus performant ou au contraire moins élégant ou moderne que tel autre langage, qu'il ne soit pas considéré comme un vrai langage typé comme le C sauf peut-être depuis ses dernières versions etc ne m'intéresse pas. PHP est à mon avis un superbe langage de programmation quand il s'agit de réaliser des applications pour le web. Je ne vais pas vous bassiner ici avec tout l'historique de PHP, pourquoi c'est bien d'apprendre à programmer en PHP, etc. Je mets juste un lien vers le site du créateur, Rasmus Lerdorf, ici sur un billet de blog très intéressant à propos des frameworks PHP et leurs promesses intenables (PHP est déjà un langage idéal pour créer son propre framework sur-mesure) : https://toys.lerdorf.com/the-no-framework-php-mvc-framework

Note : attention aux intitulés des cours et ressources disponibles en ligne. Ne soyez pas naïvement séduit.e pas les promesses d'intitulés de formations comme Become a PHP Master ou Master PHP 8 : on ne maîtrise jamais vraiment un sujet, et surtout pas en suivant un cours ou un MOOC d'une dizaine d'heures !

A savoir concernant le langage de programmation PHP : il fait partie des langages de développement impératifs, orientés objet, fonctionnels, procéduraux, réflexifs et interprétés.

Quel est le temps nécessaire à investir pour maîtriser une compétence comme la programmation php ?

Cela dépend de nombreux facteurs tels que la connaissance de l'environnement informatique en général et du web en particulier (architecture logicielle, architecture client serveur, fontionnement d'internet) de toute expérience préalable en programmation, de la capacité d’apprentissage, du temps que vous pouvez consacrer à cet apprentissage et la qualité des ressources d’apprentissage que vous utilisez. C'est mon objectif avec cet article, de vous aiguiller vers des sources que je considère utiles car bien organisées, bien expliquées et pérennes.

Comment bien choisir son parcours de formation PHP 8 ?

En fonction de votre motivation et de vos attentes, vous pouvez vous poser les questions suivantes :

  • Est-ce que je souhaite apprendre quelques éléments (pas forcément les rudiments) en vue de réaliser des tâches bien précises ? une sélection de cours en ligne ou de ressources pourront convenir
  • Est-ce que je souhaite essayer "pour voir", sans avoir d'objectif mais parce que j'ai lu partout qu'il fallait savoir coder en 2023 ? L'idéal sera de commencer avec chatGPT ou BingAI pour être guidé pas à pas
  • Est-ce que je veux bien faire dès le début et suis prêt.e à passer par toutes les étapes d'un apprentisage sérieux ? Auquel cas un cours magistral comme https://www.edx.org/course/introduction-computer-science-harvardx-cs50x permettra d'acquérir de solides bases
  • Bien entendu, un mélange de ces différentes méthodes d'apprentissages sera sûrement la meilleure façon de progresser.

Le web regorge de ressources de tous types. Mais il faut être attentif au contexte de ces ressources : leur date de publication, leur cible, leurs auteurs... Le langage PHP a grandement évolué depuis plus de 20 ans. Mais, tout comme le HTML reste la base du web, PHP a du faire preuve de rétro-compatibilité. C'est à dire qu'on peut développer en PHP avec des ressources datant de PHP 5.6 par exemple. Pour la plupart des principes de programmation, cette ancienne version est encore utilisable en 2023. Toutefois, pourquoi apprendre PHP 5.6 alors qu'aujourd'hui c'est la version PHP 8.2 qui est disponible ? Vous risquez de prendre de mauvaises habitudes avec du code ou des fonctions obsolètes face aux bonnes pratiques de programmation offertes par la dernière version. Sans compter la notion de sécurité, qui est cruciale dans notre monde où les transactions de toutes sortes passent par internet. Je vous propose donc des ressources qui sont modernes et vous mettront sur les bons rails dès le départ.

A la date de publication de cet article (le 16 juillet 2023), la version la plus récente de PHP 8 est la version PHP 8.2.8 du 6 juillet 2023. Source : https://www.php.net/ChangeLog-8.php#PHP_8_2

PHP est un langage de programmation qui s'applique au backend, c'est à dire qu'il est traité côté serveur web et le résultat (page web HTML avec CSS et JavaScript) est envoyé prêt à être utilisé par le client, c'est à dire communément votre navigateur internet. Cette infographie pourra être utile pour avoir une vision complète des différentes couches applicatives du développement web backend : https://roadmap.sh/backend

Cours en ligne

Entrons maintenant dans le vif du sujet avec ma sélection de cours en ligne gratuits pour apprendre à développer en PHP :

Concepts de programmation

Il est important de comprendre certains principes comme la programmation orientée Objet (POO), les patrons de conception (design patterns), le modèle de conception MVC (model view controller) ou encore les normes de codage qui vous permettront d'écrire un code lisible et plus facilement maintenable.

Ces règles, normes et principes ne sont pas restrictifs à l'apprentissage du langage PHP 8 et se retrouvent dans tout développement informatique moderne. C'est pourquoi je vous invite à les considérer sérieusement et les inclure dans votre parcours de formation en ligne !

SOLID et PSR sont deux normes de codage populaires dans le développement logiciel.
SOLID est un acronyme pour cinq principes de conception orientée objet:

  1. Single Responsibility (Responsabilité unique),
  2. Open-Closed (Ouvert-Fermé),
  3. Liskov Substitution (Substitution de Liskov),
  4. Interface Segregation (Ségrégation d’interface), et
  5. Dependency Inversion (Inversion de dépendance).

Ces principes visent à améliorer la maintenabilité, la flexibilité et l’extensibilité du code et ne sont pas spécifiques au langage PHP.

PSR, en revanche, signifie PHP Standard Recommendations (Recommandations standard PHP) et est un ensemble de normes de codage pour PHP développées par le PHP Framework Interop Group (PHP-FIG). Les normes PSR couvrent des sujets tels que la mise en forme du code, l’autoloading des classes et les interfaces communes pour les bibliothèques12. L’objectif des normes PSR est d’améliorer l’interopérabilité entre les projets PHP et de promouvoir les meilleures pratiques de codage. La version actuellement en cours est PSR-12 : https://www.php-fig.org/psr/psr-12/

Tutoriels

Une partie des cours ci-dessus sont déjà sous forme de tutoriels, mais j'ajouterais des outils interactifs, guides, tutos et how-to's au fur et à mesure.

Livres et magazines

Les livres suivants ne sont pas gratuits, mais ils ont l'avantage d'être récents et relativement concis à l'apprentissage de PHP (et MySQL parfois) :

  • PHP Cookbook: Modern Code Solutions for Professional Developers, par l'auteur Eric Mann (auteur de "Security Principles for PHP Applications: A php[architect] guide" en 2017), A PARAITRE FIN JUIN 2023
  • Murach's PHP and MySQL (4th Edition), par les auteurs Joel Murach, Ray Harris, Mike Murach et autres Aug 31, 2022
  • PHP & MySQL: Server-side Web Development par Jon Wiley paru en février 2022
  • The Art of Modern PHP 8, par Joseph Edmonds etLorna Jane Mitchell, publié en Octobre 2021 (voir le repo Github https://github.com/PacktPublishing/The-Art-of-Modern-PHP-8
  • Programming PHP, 4th Edition par Kevin Tatro et Peter MacIntyre sorti en mars 2020

Concernant les magazines, ils sont également très nombreux sur le sujet. Le numéro hors-série N°124 de LINUX magazine, édition Avril Mai 2023, titre en une "Et si on arrêtait sans cesse de réinventer la roue ? Développement web avec PHP et SYMFONY

Le magazine Programmez! N°257 (04/05 2023) évoque les problématiques d'éco-conception et de green IT qui me sont chères. (si vous voulez savoir pourquoi)