Vous êtes sur la page 1sur 1

Menu

Retour

INTRODUCTION À LA PROGRAMMATION
ORIENTÉE OBJET (POO)

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


1 <?php
2 class Voiture
3 {
4 // Attributs
5 // Méthodes
6 }
7 ?>

Voiture.php hosted with ❤ by GitHub view raw

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:


1 <?php
2 $mini = new Voiture();
3 $golf = new Voiture();
4 $clio = new Voiture();
5 ?>

instance.php hosted with ❤ by GitHub view raw

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:


1 <?php
2 class Voiture
3 {
4 // Attributs
5 public $couleur;
6 public $moteur;
7 public $portes;
8 public $boite_de_vitesse;
9
10 // Méthodes
11 public function __construct() { }
12
13 public function rouler()
14 {
15 echo 'La voiture roule à 90km/h';
16 }
17
18 public function stationner()
19 {
20 echo 'La voiture est stationnée sur un parking.';
21 }
22 }
23 ?>

Voiture.php hosted with ❤ by GitHub view raw

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 :


1 <?php
2 use Voiture;
3 // Attributs de la mini
4 $mini = new Voiture();
5 $mini->couleur = 'bleu';
6 $mini->portes = '5';
7 $mini->carburant = 'Diesel';
8 $mini->boite_de_vitesse = 'Automatique';
9
10 // Attributs de la clio
11 $clio = new Voiture();
12 $clio->couleur = 'rouge';
13 $clio->portes = '3';
14 $clio->carburant = 'Essence';
15 $clio->boite_de_vitesse = 'Manuelle';
16
17 // Attributs de la golf
18 $golf = new Voiture();
19 $golf->couleur = 'noir';
20 $golf->portes = 3;
21 $golf->carburant = 'Essence';
22 $golf->boite_de_vitesse = 'Manuelle';
23 ?>

attributs.php hosted with ❤ by GitHub view raw

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:
1 <?php
2 echo 'Clio :<br/><br/>';
3 echo 'Couleur : ' .$clio->couleur. '<br/>';
4 echo 'Portes : ' .$clio->portes. '<br/>';
5 echo 'Carburant : ' .$clio->carburant. '<br/>';
6 echo 'Boîte de vitesse : ' .$clio->boite_de_vitesse;
7
8 echo 'Golf :<br/><br/>';
9 echo 'Couleur : ' .$golf->couleur. '<br/>';
10 echo 'Portes : ' .$golf->portes. '<br/>';
11 echo 'Carburant : ' .$golf->carburant. '<br/>';
12 echo 'Boîte de vitesse : ' .$golf->boite_de_vitesse;
13
14 echo 'Mini :<br/><br/>';
15 echo 'Couleur : ' .$mini->couleur. '<br/>';
16 echo 'Portes : ' .$mini->portes. '<br/>';
17 echo 'Carburant : ' .$mini->carburant. '<br/>';
18 echo 'Boîte de vitesse : ' .$mini->boite_de_vitesse;
19 ?>

access_attributs.php hosted with ❤ by GitHub view raw

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:
1 <?php
2 use Voiture;
3
4 // Instanciation de la classe Voiture
5 $mini = new Voiture();
6 $clio = new Voiture();
7 $golf = new Voiture();
8
9 // Utilisation des méthodes
10 $mini->rouler();
11 $clio->stationner();
12 $golf->rouler();
13 ?>

methods.php hosted with ❤ by GitHub view raw

Php

23/11/2018

JAMES RICHARD

DIRECTEUR TECHNIQUE

LAISSEZ NOUS UN COMMENTAIRE


Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nom*

E-mail*

Message*

LAISSER VOTRE COMMENTAIRE

VOUS AIMEREZ AUSSI ...

Docker Tutorial -
Un peu de Lean dans Uikit une alternative Intel XDK : "mes Comment installer
mon projet crédible à Bootstrap ? icones et splash Docker ?
screens disparaissent" A la découverte de Docker -
Chez TPZ on est souvent au contact Auparavant chez, Troispointzero,
de porteurs de projet. Au delà du… lorsque nous devions démarrer Construire un environnement de dev
On l'a vu dans un précédent post,
l'intégration HTML et CSS d'un pour déployer du…
Intel XDK est formidable à pas
23/11/2014 | 0 nouveau projet notre…
mal…
09/07/2019 | 0
21/02/2019 | 0
26/10/2014 | 0

DÉMARREZ VOTRE PROJET DIGITAL !


JE ME LANCE

PARIS AUVERGNE FRANCHE-COMTÉ


37 Rue des Mathurins 37 Avenue de Gramont 2 Rue des Peupliers ZI des Saussis
75008 - Paris - France 03200 - Vichy - France 70000 - Noidans lès Vesoul - France
Linkedin +33 6 17 03 61 31 +33 9 84 34 84 79 +33 6 43 78 96 54
contact@tpz.fr vincent@tpz.fr james@tpz.fr

Twitter

Vous aimerez peut-être aussi