La programmation orientée objet avec PHP

Actuellement, la programmation objet est devenue un grand centre d'intérêt pour les développeurs. Comme les autres langages tel que Java, PHP par son évolution nous offre aussi cette possibilité. Néanmoins, certains d'entre nous ont peut être entendu dire que PHP est largement dépassé par Java sur ce sujet.

Effectivement, dans sa version 4, le modèle objet était très succinct.

Mais soyez rassurés puisque dans sa version actuelle, PHP n'a plus grand chose à envier aux autres langages au niveau programmation objet. La défaillance de la gestion des objets a été largement corrigée lors du passage de PHP 4 à PHP 5. Et tout ça rien que pour nous, alors il serait dommage de ne pas s'en servir.

Pourquoi programmer en objet ?

La programmation en objet n'est pas le but ultime de ce tutoriel, pour autant il s'avère utile d'aborder quelques notions de base pour comprendre la suite.

Commençons par voir en quoi consiste la programmation objet.

Dans la procédure classique, la méthode de programmation utilisée est la programmation structurée. Cette méthode consiste à décomposer le problème en plusieurs fonctions ou processus. A l'inverse, la programmation objet décompose le problème sous forme de plusieurs objets ou concept.

Programmation orientée objetProgrammation structurée
On décompose par objet ou concept :
- Membre
- Livre
- Membre
On décompose par Fonction ou Processus :
- Enregistrement de prêt
- Ajout d'un livre
- Gestion des membres

Ainsi, la programmation objet nous donne une vision concrète qui est plus proche du monde réel et nous offre une représentation facile du problème. C'est pourquoi cette méthode nous offre de nombreux avantages dont les principaux sont :

  • Code présenté de façon compréhensible : La bonne conceptualisation dans la méthode objet nous permet d'avoir un code naturel, facilement compréhensible et facile à utiliser.
  • Réutilisabilité du code : On peut réutiliser un type objet comme étant un modèle pour un autre type en ne réimplémentant que ce qui change entre les deux.
  • Modularité du code : La programmation objet nous permet d'isoler facilement un module.

Les Classes

La notion de classe est l'un des grands fondements de la programmation objet. Le principe est de pouvoir construire un modèle de données qui servira de moule pour les objets. Autrement dit, une classe regroupe des objets d'une même famille. Il existe alors une certaine similarité entre les objets d'une même classe. Désormais, le terme objet désignera une instance de classe.

Imaginons une classe Animal. Les animaux peuvent avoir des comportements similaires. Tout animal dort, mange, boit, évoque des cris, etc. On peut aussi donner des caractéristiques aux animaux (Par exemple : âge, poids, etc)

En termes d'objet, ces caractéristiques sont traduites par ce que l'on appelle les attributs d'une classe. Et on désigne par méthode les comportements des objets. Voyons à l'aide de cet exemple comment créer une classe en PHP.

<?php
class Animal
{
public $age;
public $poids;
public $taille;
public $couleur;
function dormir()
{
echo ("Bonne nuit");
}
function manger()
{
echo ("Je mange");
}
function crier($mot)
{
$reponse = "waou ".$mot;
return $reponse;
}
}
?>

Pour créer une classe en PHP, on utilise le mot clé class suivi du nom de la classe. PHP ne l'exige pas, mais par respect des normes on mettra toujours les noms de classe avec des majuscules au début.

La classe Animal a donc dans notre exemple 4 attributs : $age, $poids, $taille, $couleur. Sachant que les attributs d'une classe peuvent être des variables mais aussi des constantes.

En ce qui concerne la méthode, on les définit à l'intérieur de la classe comme on définit les fonctions PHP classique. Remarquons aussi qu'une méthode peut retourner une valeur. Nous verrons l'utilisation de ces différents concepts dans le prochain tuto.

Recevez par email nos prochains conseils

Oseox sur Facebook Notifications via Facebook Oseox sur Twitter Notre actu sur twitter

Une question ? Venez la poser sur notre forum développement web !

A propos de l'auteur

Nicolas Galle

Nicolas Galle est développeur web sénior pour l'agence Aseox.