Introduction à la Programmation Orientée Objet (POO)

23/11/2018

Aucun commentaire

Pourquoi programmer en objet ?

Pour un projet php de plus grande envergure, la programmation orientée objet est un très bon choix de développement. En effet cette manière de programmer offre de nombreux avantages :

  • votre code est séparé en plusieurs classes, ce qui améliorera la lisibilité de votre application, chaque classe ayant ses propres propriétés et son propre contexte.
  • une approche modulaire est assez simple à mettre en place car vos objets sont cloisonnés et ne peuvent interagir entre eux uniquement si cela a été clairement spécifié.
  • la réutilisation de code au travers de classes que vous seriez amené à utiliser dans plusieurs projets..

Un objet : quésako ?

Définition

“Un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d’un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs”. (source : Wikipédia )

Les classes

Présentation

Une classe permet de définir la structure des éléments qui sera commune à vos objets.
On pourra dire qu’une classe fonctionne comme un moule qui donnerait la forme à des gâteaux. Si nous reprenons notre exemple d’une voiture, on  aurait alors une classe qui définirait les attributs (moteur, volant, porte, carburant) ainsi que les méthodes inhérentes (rouler, stationner…)

Déclaration d’une classe

Attention: le nom de votre classe doit être écrit en “Camel Case” ce qui veut dire qu’il n’y a pas d’espace entre les mots et que la première lettre de chaque mot est écrite en majuscule. Par exemple une classe de gestion de véhicules aura pour nom : GestionVehicule.

Les instances

Présentation

Instancier une classe est en fait un simple appel à celle-ci. Pour cela il faut utiliser le mot-clé new qui construira l’objet grâce à la méthode __construct().

Instancier une classe

Dans l’exemple ci-dessous nous avons 3 instances différentes de la classe Voiture:

Les attributs

Présentation

Les attributs sont en fait les caractéristiques qui définissent un objet.

Prenons l’exemple d’une voiture. Ce qui la caractérise en tant que véhicule ce serait :

  • les roues
  • le volant
  • le moteur
  • les portières
  • etc…

Déclarer des attributs

La déclaration d’attributs dans une classe est assez simple à mettre en oeuvre, cependant il faut faire attention à la visibilité de ceux-ci. Il y a trois niveaux de visibilité :

  • public (accessible partout même à l’extérieur de la classe)
  • private (accessible à l’intérieur de la classe)
  • protected (Le type de visibilité protected est en fait une petite modification du type private : il a exactement les mêmes effets que private, à l’exception que toute classe fille aura accès aux éléments protégés. Source : OpenClassRooms )

Exemple de déclaration d’attributs avec notre classe voiture:

Dans l’exemple ci-dessus, les attributs sont correctement déclarés mais nous n’avons pas précisé leurs valeurs respectives, ils auront donc la valeur NULL par défaut.

Définir une valeur  à un attribut

Définissons maintenant des valeurs d’attributs pour nos différents véhicules :

Ci-dessus rien de particulier concernant la définition des attributs si ce n’est qu’il faut bien spécifier à quel objet ils font référence.

Accéder aux attributs d’une classe

C’est relativement simple il vous suffit de reprendre le principe pour afficher une variable standard.

Voir l’exemple ci-dessous:

Les méthodes

Présentation

Les méthodes sont en fait les fonctions de notre classe et peuvent avoir des paramètres. Il est commun de nommer les méthodes sous forme de verbe car il s’agit d’actions exécutables dans une classe.

A noter qu’il est également préférable d’utiliser systématiquement l’anglais, autant dans le nom des variables que des fonctions et méthodes.

Accéder aux méthodes

Pour exécuter une méthode nous allons reprendre la syntaxe d’appel d’une fonction.

Voir l’exemple ci-dessous: