Comprendre la programmation orientée objet dans le PHP

À l'origine, le PHP ne pouvait créer que des petits scripts tels que des compteurs de visites et le traitement de formulaires HTML. La vraie révolution du PHP a commencé lorsqu'on a intégré des caractéristiques de la programmation orientée objet (POO) dans le PHP 4.0. Les développeurs pouvaient exploiter de nombreuses possibilités et cela a ouvert la voie aux sites entièrement dynamiques tout en étant léger pour les ressources du serveur. Le PHP 5 avec son moteur basé sur Zend 2 a permis d'intégrer tous les aspects de la POO même si peu de développeurs exploitent toutes les fonctionnalités.

C'est quoi, la programmation orientée objet ?


La programmation orientée objet est une approche qui utilise les objets et les classes. Si cette méthode était peu connue il y a quelques années, elle est désormais enseignée dans les universités. La POO est surtout présente dans des langages tels que le Java ou le C++. La POO n'est pas juste un changement dans la syntaxe du code, mais c'est une modification radicale dans l'étude des problèmes dans une application donnée. Par exemple, on demande à un développeur de créer une application sur le département de ventes d'une entreprise. Au lieu d'utiliser une méthode linéaire, ce développeur va étudier les relations entre les vendeurs et les clients en les intégrant dans l'application. Les éléments de l'application sont les objets dans la POO. Si vous avez un magasin de DVD et que vous souhaitez une application de gestion, alors les objets seront les DVD et les clients. La programmation orientée objet va résoudre les éléments de votre problème en les transformant en objets.

La POO se base à la fois sur l'objet et la classe. L'objet peut représenter une chose physique ou non. Ainsi, votre maison, votre voiture, votre chien et vous mêmes êtes des objets dans la POO. Chacun des objets possède des caractéristiques telles que les couleurs, la taille, la dimension et ce sont les attributs de l'objet. Votre compte en banque, même s'il n'est pas physique, est également un objet. La classe dans la POO est les attributs que nous venons de mentionner. C'est comme un script qui permet de créer l'objet et ce qu'il peut faire. Ainsi, vous pouvez utiliser la classe pour qu'une voiture ait 4 roues et qu'elle peut aller vers l'avant ou vers l'arrière. La différence est que seul le développeur connaît les caractéristiques de la classe, mais n'importe qui pourra l'utiliser. Par exemple, vous possédez un ordinateur et vous savez comment l'utiliser, mais vous ignorez comment il a été fabriqué. Seul le concepteur connaît les rouages internes du PC. La classe peut être modifiée en toute transparence. De même, vous pouvez acheter un nouveau modèle de PC, mais vous saurez toujours comment l'utiliser. Les changements internes sont transparents pour l'utilisateur.

Les méthodes et l'héritage de la POO


Les propriétés d'un objet définissent sa caractéristique telle que la dimension, les teintes, le poids, etc. Ces propriétés seront les variables que nous déclarerons avec notre objet. Si vous avez un PC qui est l'objet, alors ce dernier peut avoir plusieurs propriétés telles que le CPU, le type de boîtier, la connectique, etc. Les méthodes représentent la limite d'action d'un objet. Si une voiture peut rouler et freiner alors on dira que ce sont les méthodes de l'objet Voiture. Si vous êtes habitués au PHP, les méthodes sont similaires aux fonctions. Cependant, une méthode peut être uniquement être appelée par son objet. Le PHP est limité dans ce domaine et donc, la méthode est moins polyvalente qu'une fonction PHP. Le défi avec les méthodes de la POO est d'éviter d'empiéter sur le domaine d'une autre méthode. Considérez la méthode comme vos relations de voisinage. Si vous voulez emprunter quelque chose, alors vous devrez sortir de la maison, frapper à la porte et demander l'objet en question. Donc, votre objet Maison ou Voisinage peut avoir des méthodes telles que sortirMaison, frapperPorter, demandeObjet, etc. La subtilité est que la méthode doit accomplir sa tâche en évitant des incompatibilités avec des méthodes existantes.

L'héritage est les classes qui peuvent être partagées par un objet. Reprenons notre exemple de PC et vous pouvez avoir deux modèles, le premier est rouge et l'autre est noir. Au lieu de créer deux classes pour chaque couleur, vous en créez une seule et vous les partagez. On dit aussi que cette classe principale est le parent et vous allez créer deux autres sous-classes (rouge et noir) qui seront les enfants. Ce sont les fondamentaux de la programmation orienté objet et à vous de les implanter dans le PHP.