Programmation orientée objet en PHP

Auteur: Mohamed CHINY Durée necessaire pour le cours de Programmation orientée objet en PHP Niveau recommandé pour le cours de Programmation orientée objet en PHP Supports vidéo non disponibles pour ce cours Exercices de renforcement disponibles pour ce cours Quiz non disponibles pour ce cours

Page 1: Programmation orientée objet (POO)

Toutes les pages

La programmation orientée objet c'est quoi?

Dans le monde de la programmation, deux styles fondamentaux (ou paradigmes) sont mis en avant, à savoir, la programmation procédurale et la programmation orientée objet.

Programmation procédurale

Dans la programmation procédurale (ou fonctionnelle), un programme est divisé en plusieurs étapes qui s’exécutent d'une manière séquentielle. Durant ces étapes, l'ensemble des variables mises en jeu sont modifiées par le biais de procédures ou fonctions qui se succèdent.

Malgré la simplicité que l'on peut toucher lors de la programmation procédurale, celle ci a plusieurs inconvénients que je vais résumer dans les points suivants:
  • Entretien du programme complexe: puisque le programme s’exécute séquentiellement du début à la fin, le fait de vouloir modifier son comportement (même légèrement) revient à faire des modifications (parfois majeures) dans plusieurs endroits.
  • Avancement lent dans les grandes applications: le fait de coder de grandes applications à l'aide d'un langage de programmation procédurale requière beaucoup de temps. Chose qui n'est pas toujours à portée de main lorsqu'il s'agit de clients exigeants.
  • Travail en groupe non favorable: les grands projets sont généralement réalisés par une équipe constituée de plusieurs programmeurs, chacun s'attribut une tâche (ou une partie du projet). Le fait de vouloir reconstituer l'application finale n'est pas toujours chose aisée, ce qui demande généralement de repasser en vue certains bouts de code.

Les langages de programmation procédurale les plus connus sont: C, Pascal, Perl, PHP4, PL/SQL...

Programmation orientée objet (POO)

Vers les années 1970, le concept de l'objet est né. La programmation orientée objet se base sur la manipulation d'entités appelées objets. Les objets sont plus concrets et plus perceptibles par les humains. Ils peuvent représenter des entités physiques du quotidien comme une personne, une maison, un arbre...

Un objet du POO possède une structure interne (qui définit ses propriétés) et ses propres comportements et peut interagir avec d'autres objets.

Si la programmation orientée objet gagne du terrain c'est principalement grâce à ses nombreux avantages qu'on peut résumer dans ces points:
  • Plus intuitive: La POO permet de manipuler des objets qui peuvent interagir entre eux. Ce concept est plus proche du monde physique où nous vivons.
  • Plus organisé: Les objets étant indépendants les uns des autres (même s'ils peuvent interagir entre eux), le code source devient plus organisé et plus claire.
  • Plus évolutif: Un code organisé est plus facile à maintenir.
  • Code réutilisable: En POO le code peut être divisé en modules plus faciles à réutiliser, non pas seulement dans le projet courant, mais dans d'autres projets.
  • Favorise le travail en équipe: A l'inverse de la programmation procédurale, la POO favorise le travail en équipe en découpant les parties du projet faciles à regrouper après.

Les langages de programmation orientés objet les plus connus sont: C++, Java, PHP5 (et PHP7), C#, Ruby, Python...

Programmation orientée objet en PHP

Généralités

La programmation orientée objet a fait son apparition en PHP depuis sa version 4, mais le concept n'était pas assez mature comme c'est le cas pour des langages comme Java ou C++. Avec l'apparition de PHP5 beaucoup de fonctionnalités ont été ajoutées au langage. Cependant, l'ultime avancée technologique consiste à la prise en charge de la POO comme elle se doit.

Dès qu'on parle de PHP5, on pense implicitement au PHP Orienté Objet. Bien qu'on peut continuer à programmer en procédural même avec les nouvelles fonctionnalités de PHP5, il est évident que la POO a pris le dessus surtout avec l’intégration de ses véritables concepts, comme l'héritage, les interfaces, les classes abstraites etc...

De quoi aura-t-on besoin?

Pour profiter pleinement de la POO en PHP, il est recommandé d'installer une plate forme de développement qui supporte une version du langage supérieure ou égale à 5.4. Le lien de téléchargement que j'ai proposé dans le cours de PHP4 vous permet de télécharger WAMP Server 2.5 qui supporte PHP 5.5.

Aucune configuration spéciale n'est requise. Le model objet est supporté nativement par le moteur PHP qui compile le code sur le serveur d'application. Cependant, une légère configuration du fichier php.ini serait nécessaire quand on aura atteint la partie qui traite l'interface PDO.

Pour pouvoir aller plus loin dans ce cours, une connaissance préalable du langage PHP (PHP4) est fortement recommandée. Si ce n'est pas le cas, vous pouvez suivre le cours de PHP4 sur ce lien.

Si vous avez déjà programmé en objet (en Java, C++ ou autre), les concepts que nous allons voir vous seront familiers. En revanche, si vous n'avez jamais fait de la POO avant, ne vous inquiétez pas. Nous allons aller doucement pour que tout le monde profite du cours à son rythme.