Présentation du cours

Pourquoi s'embêter à apprendre le PHP orienté objet ?

Le code orienté objet est plus organisé. Les entités distinctes sont créées dans un seul but. Cela signifie qu'il est plus facile de trouver des choses dans le code (ce qui met fin à ces jours où l'on passait des heures à relire des lignes de code spaghetti pour trouver un seul élément). Il est également plus facile d'ajouter, de remplacer ou de supprimer des parties du code, car cela ne doit être fait qu'une fois. Avec la programmation procédurale, en revanche, il est nécessaire de changer chaque occurrence.

Enfin, la programmation orientée objet donne la possibilité aux développeurs d'intégrer des bibliothèques tierces sans se soucier des collisions de noms, même si certaines des fonctions dans le code pourrait avoir le même nom.

La POO exige une façon différente de penser. C'est pourquoi il est important de comprendre les principes fondamentaux.

L'objectif de ce tutoriel

Le but de ce tutoriel est de dévoiler les secrets du PHP orienté objet.

Il s'agit essentiellement de séparer le code d'une application en plusieurs parties beaucoup plus petites et plus faciles à utiliser : c'est la modularité.

Cela rend le code plus flexible, ainsi que plus facile à modifier, mettre à jour, déboguer et étendre.

Il permet également de gagner énormément de temps. Grâce à la modularité, les programmeurs peuvent modifier le code d'une application simplement en travaillant sur les sections spécifiques et pertinentes, au lieu de regarder l'ensemble du code source.

L'ajout, la suppression ou la modification de fonctions est donc plus rapide.

Le temps est également gagné car la modularité permet de faciliter le travail des autres programmeurs engagés dans un même projet. Cela signifie que les développeurs peuvent utiliser des fonctions éprouvées et écrites ailleurs, et ils peuvent les intégrer dans le code sans adaptation lourde.

Enfin, la modularité permet de gagner du temps car elle facilite le travail de plusieurs personnes sur un même projet. Sans cela, une petite modification du code par un développeur peut avoir des répercussions sur l'ensemble du projet. La modularité résout ce problème.

Prenons l'exemple d'un blog. Il s'agit d'une application simple, mais qui peut comporter plusieurs classes. Cela peut inclure une classe d'utilisateur, une classe de base de données, une classe de messages et une classe de courrier. Avec la modularité et la POO, chacune de ces classes a sa propre section dans le code. Cette section peut être traitée indépendamment des autres. Cela signifie qu'il est possible d'ajouter, de supprimer ou de remplacer des parties du code sans affecter tout le reste. Dans l'exemple du blog, il est possible de changer la classe de courrier en la remplaçant par une autre bibliothèque. Avec la modularité, cela peut être fait même si la classe d'utilisateurs dépend de la classe de courrier pour l'envoi de courriers électroniques aux utilisateurs du blog. Chacune des classes est traitée séparément.

C'est pourquoi presque tous les grands sites web sur Internet utilisent la programmation orientée objet - cela permet de gagner du temps
et de nombreux maux de tête.

L'avantage de pouvoir travailler plus efficacement avec plusieurs programmeurs sur un seul projet ne doit pas non plus être sous-estimée. Cela permet à nouveau de gagner du temps et d'éviter les maux de tête, les erreurs et les désaccords parmi les programmeurs. En particulier, il n'y a pas de risque de collision de noms (Quand plus d'une fonction ou variable du programme porte le même nom). La modularité signifie que chacune de ces fonctions ou variables résident dans un module indépendant, de sorte que les collisions de noms ne posent pas de problème.

L'objectif de ce cours est donc d'inculquer aux programmeurs le principe de modularité. Tout est basé sur cela, des classes aux espaces de noms en passant par les méthodes de codage des bibliothèques. La modularité est ce qui confère à la POO la plus grande partie de sa puissance.

Qu'allons nous apprendre ?

Ce tutoriel couvre les bases de la programmation orientée objet en PHP. Il commence par les bases du codage en orienté objet. Ce style s'applique à tout, y compris aux classes, aux objets, les méthodes et les propriétés. Il couvre également la manière dont le code d'une classe peut être abordé de l'intérieur de la classe et, surtout, de l'extérieur.

Par exemple :

  • Créer des classes
  • Ajouter des propriétés à une classe
  • Créer des objets à partir d'une classe
  • Définir les propriétés d'un objet
  • Ajouter des méthodes à une classe

Nous verrons également comment écrire un code plus facile à lire et à comprendre parce qu'il ressemble davantage au langage humain.

En outre, j'essaierai de vous livrer au fil de l'avancement de ce tutoriel, des conseils, et des astuces pour rendre votre code en POO plus efficace :

  • Protéger le code  des classes d'interactions extérieures indésirables,
  • L'héritage d'objets et la façon dont il réduit la répétition (principe DRY),
  • Abstraction de classes et de méthodes pour une meilleure organisation du code
  • Autres conseils pour l'organisation des codes
  • Construire des applications en utilisant les interfaces et le polymorphisme
  • Intégration de code provenant d'autres sources et bibliothèques à l'aide des espaces de noms

Nous aborderons enfin un principe souvent intimidant : l'injection de dépendance. Je m'efforcerai d'avoir une approche pratique et facile à comprendre.