Dans cette première leçon d’une série sur la programmation orientée objet (POO) en PHP, le narrateur introduit les concepts fondamentaux du paradigme orienté objet et les compare au paradigme procédural traditionnel. Il rappelle que les vidéos précédentes ont couvert la syntaxe PHP de base et montre comment, jusqu’ici, le code PHP a été écrit de façon procédurale, à l’image du langage C. Il décrit les grandes familles de paradigmes (impératif, orienté objet, déclaratif) et se concentre sur les deux plus répandus : procédural et orienté objet. Le discours explique le fonctionnement du paradigme procédural (programme linéaire manipulant des variables via des fonctions) et illustre ses limites à travers l’exemple d’une ville virtuelle composée d’habitants, de maisons, de routes, de voitures, etc., où chaque entité doit interagir avec les autres. Il montre que, dans un style procédural, ajouter ou modifier des entités implique de réécrire une grande partie du code. Ensuite, il présente la POO comme une solution : chaque entité devient un objet avec ses propres attributs (ex. âge, sexe, couleur) et comportements (ex. marcher, parler). Il introduit la notion de classe comme « moule » permettant de créer de multiples objets identiques, et mentionne l’héritage comme moyen de réutiliser et d’étendre du code existant sans le modifier. Le narrateur souligne que, bien que la POO offre de nombreux avantages (modularité, réutilisabilité, facilité d’extension), elle n’est pas toujours la meilleure approche et qu’il faut choisir le paradigme adapté au problème. Il cite les langages majeurs supportant la POO (C++, Java, Python, Ruby, C#, PHP, JavaScript, Delphi…) et précise que PHP supporte pleinement la POO depuis la version 5. Enfin, il rappelle les prérequis nécessaires pour suivre la série (maîtrise des variables, fonctions, structures de contrôle en PHP) et invite les apprenants à consulter les vidéos précédentes sur les évolutions de PHP.
Chapters
Bonjour à tous, et bienvenue dans cette première vidéo d'une série de leçons sur la programmation orientée objet en PHP. Dans les vidéos précédentes, nous avons vu la syntaxe PHP et les fondements de ce célèbre langage, et nous avons réalisé des programmes avec, parmi lesquels il y en a qui sont très simples et d'autres le sont un peu moins. En réalité, nous avons codé en PHP dans son aspect procédural comme si on programmait en C ou en d'autres langages utilisant ce paradigme. Comme vous le savez probablement déjà, il existe de nombreux paradigmes de programmation. Les plus grandes familles sont: la programmation impérative, la programmation orientée objet et la programmation déclarative. Chacun de ces paradigmes renferme une multitude de types élémentaires de programmation, comme la programmation procédurale, fonctionnelle, orientée classe, orientée prototype, descriptive, événementielle, etc. Cependant, quand on parle de la programmation, on fait souvent allusion à l'un des 2 paradigmes suivants: la programmation procédurale et la programmation orientée objet. Il s'agit en fait des deux familles les plus célèbres et les plus implémentées par les langages de programmation les plus réputés. Dans la programmation procédurale, un programme est créé d'une manière intégrale avec une logique qui se poursuit du début à la fin, en manipulant des variables de différents types. Ces variables, qui constituent les données du programme, seront modifiées par une suite de traitements qui respectent une certaine logique et seront délivrées à la fin de l'exécution. Donc, les éléments de base d'un programme dans ce cas sont les variables, et le programme entier se charge de les manipuler, souvent indépendamment les unes des autres, en suivant un algorithme ou une logique donnée. Donc, tout programmeur débutant trouve ce paradigme plus intuitif et plus logique, dire même que c'est probablement le seul qui lui semble exister. Par exemple, le langage C est un langage qui implémente principalement le paradigme procédural. Alors, tout programmeur en C vous dira que quelle que soit la complexité du programme posé, ça peut se résoudre à l'aide d'un seul programme, aussi long soit-il, et qui sera exécuté du début à la fin en agissant sur les variables à l'aide de procédures ou fonctions offertes par le langage ou créées par le développeur lui-même. D'ailleurs, jusqu'ici, nous nous sommes servis du PHP dans son aspect procédural aussi, exactement comme c'est le cas pour le langage C. Bien que le paradigme procédural semble plus logique, mais face à certains problèmes, il devient de plus en plus compliqué de coder avec. À titre d'exemple, imaginez que l'on veut créer une sorte de ville virtuelle qui est constituée d'habitants, de maisons, de routes, de magasins, de voitures, etc. Ces différents éléments peuvent interagir entre eux. Par exemple, une maison est habitée par des habitants. Eux-mêmes peuvent conduire les voitures sur les routes et faire leurs courses dans les magasins de la ville. Pour représenter ces interactions à l'aide d'un langage utilisant le paradigme procédural comme le C ou le PHP que nous avons vu jusqu'ici, il sera très difficile de réussir notre programme, d'autant plus si un jour on veut intégrer de nouveaux habitants ou fonder de nouvelles maisons. Cela revient à modifier une bonne partie de notre code, si ce n'est pas le code entier qu'il faut revoir. Par contre, le paradigme orienté objet prend en charge des objets. Chaque élément de notre ville virtuelle est un objet, les habitants sont tous des objets et leurs voitures le sont également. En plus, chaque objet a ses propres caractéristiques comme le sexe et l'âge pour les habitants, la marque et la couleur pour les voitures, la superficie et l'adresse dans le cas des d'une maison. Certains de nos objets peuvent aussi mener des actions ou avoir un comportement, comme le fait de marcher ou parler dans le cas d'une personne ou habitant. En d'autre part, il serait bien plus facile d'appréhender les interactions entre nos différents objets, voire même d'en ajouter des nouveaux, sans que la modification de notre code ne soit nécessaire. Par conséquent, la programmation orientée objet représente une solution magique dans le cas de problèmes qui requièrent de l'interaction entre les composants du programme. Mais ce n'est pas le seul avantage. En fait, bien que les objets constituent les éléments de base de nos programmes, en tant que programmeurs, nous ne sommes pas obligés de créer leur code un à un. Il suffit de forger un moule qui a pour rôle de reproduire nos objets à la demande quel que soit leur nombre. Ce moule est appelé une classe. Nous allons donc créer une classe qui représente une personne, et c'est elle qui va donner naissance à tous les habitants de la ville en les dotant de caractéristiques et comportements différents. De même pour les maisons, les voitures et le reste des composants de la ville. Un autre avantage de taille en faveur de la POO est la réutilisation du code déjà créé avec la possibilité de le modifier sans toucher au code original via une opération nommée héritage. Bien évidemment, je ne vais pas entrer dans les détails pour énumérer les différents atouts de ce paradigme pour le moment, car il faut aller doucement. Néanmoins, il se peut bien que dans certains problèmes l'approche procédurale s'avère mieux placée que la POO. L'idée reçue c'est que la programmation orientée objet est la mode en ce moment et on cherche à tout prix à écrire notre code en suivant ce paradigme, mais il ne faut pas se laisser aller derrière les tendances et chercher plutôt à mettre en place la solution adéquate au problème posé. Les langages de programmation orientée objet les plus connus sont C++, Java, Python, Ruby, C#, PHP, JavaScript qui implémente ECMAScript 6 et plus, Delphi, etc. Dans la suite de ce cours, nous allons explorer ensemble le monde de la programmation orientée objet en PHP qui est supportée d'une manière avancée à partir de la version 5 du langage. Je vous invite à regarder la première et la deuxième vidéo de la série précédente consacrée au langage PHP, où j'ai essayé de résumer les avancées majeures de chaque version ainsi que les outils qu'il faut avoir afin de coder en PHP. En tout cas, pour tirer profit de cette série de leçons, il est recommandé que vous soyez à l'aise avec la syntaxe et les fondements de base de PHP comme les variables, et leur manipulation, les fonctions, les structures de contrôle, etc. Merci pour votre attention et à la vidéo prochaine.