Les Objets en PHP
La programmation orienté objet (POO)
En PHP, il existe des types de bases : int, string, bool etc. Chaque type possede donc une information et chaque type peut etre manipuler via des opérateur. La POO repose sur la création par l’utilisateur de nouveau types de données. On décrit donc l’information qu’on peut appliquer à ce type de données. La POO en PHP5 introduit trois concepts fondamentaux :
- l’encapsulation : qui permet de masquer les détails de l’information, de protéger ses données et rendre accessible l’interface publique de la classe
- l’héritage : qui est le méchanisme permettant de définir une classe à partir d’une autre classe existante sauf si la classe est « FINAL ». La nouvelle classe créee dispose de l’ensemble des membres PUBLIC et PROTECTED de la classe dont elle hérite. Il sera alors possible de modifier le membre hérité.
Pour définir si un objet peut hériter d’une autre classe, il faut se poser la question suivante : Est-ce que B est un A. Il existe différents types d’héritage : spécialisation et généralisation.
Si B hérite de A, B est une spécialisation de A et B est une généralisation de B. - le polymorphisme : qui est la capacité pour un objet d’être manipulé comme s’il s’agissait d’un autre type. Meme structure mais propriété différentes. On parle d’un objet instancié lorsque ce dernier à été crée. Ce dernier pouvant etre instancié par une des classe qu’il hérite.
LA POO doit permettre une plus grande maintenance du code et une réutilisation des composants. Il est fortement recommandé d’utiliser des objets. Un objet pour etre manipulé n’as pas d’obligation de création.
Définition d’un objet
La classe est une description de l’objet. Une classe est définie par :
- Les propriétés de l’objet qui sont les données optionnelles
- Les méthodes de l’objet sont les traitements, les opérations portant sur les données. Elles sont égalements optionnelles
| PHP 4 | PHP 5 |
class nomClass {
[propriétés;
méthodes;]
}
|
class nomClass {
[propriétés;
méthodes;]
}
|
Pas de notions de PPP. Une ressource (propriété/méthode) est forcément et automatiquement publique
class nomClass {
var propriété; // tout le monde
}
|
[final] class nomClass {
private propriété; // que la classe peut y acceder
protected propriété; // classe + enfants
public propriété; // tout le monde
final propriété; // tout le monde sauf enfants
methodes;
}
propriété PUBLIC par défaut |
var $hauteur = 12; |
public $hauteur = 12; |
class nomClass{
function nomFonction([...]){
//instructions
}
}
Attention: Toutes les methodes en PHP4 sont publiques |
class nomClass{
[private][protected][public][final]function nomFonction([...]){
//instructions
}
}
Sans mots clé PPP, la méthode est automatiquement publique. |
class nomClass {
var $propriete; // tout le monde
function nomFonction([...]){
$this->propriete = 'val';
nomClass::$propriete = 'val';
$this->nomFonction();
}
}
|
[final] class nomClass {
private $priv;
protected $prot;
public $pub;
final $fin;
[...] function nomFonction([...]){
$this->vip = 'val';
$this->prot = 'val';
$this->pub = 'val';
$this->fin = 'val';
nomClass::$vip = 'val';
nomClass::$prot = 'val';
nomClass::$pub = 'val';
nomClass::$fin = 'val';
self::$vip = 'val';
self::$prot = 'val';
self::$pub = 'val';
self::$fin = 'val';
$this->nomFonction();
}
}
|
| On peut utiliser nomClass::propriété dans nomClass2 | On peut utiliser nomClass::propriété dans nomClass2 si propriété est publique |
Le constructeur porte le nom de la classe, il n’existe pas de destructeur.
class nomClass {
function nomClass(){
//instructions
}
}
|
Le constructeur peut porter le nom de la classe, si __construct() est présent, il sera prioritaire. Le destructeur sera __destruct()
class nomClass {
function nomClass(){
//instructions
}
function __construct(){
//instructions
}
function __destruct(){
//instructions
}
}
|
$objet = new nomClass([...]); |
$objet = new nomClass([...]); |
PHP5 est orienté objet. C’est à dire un paradigme de développement qui s’attache à représenter des entités du programme sous forme d’objet associant données et traitements
Propriété d’instance
Lorsqu’on parle de propriété d’instance, il s’agit d’une propriété associée a une instance particuliere d’une classe. Pour chaque objet, les propriétés leurs appartiennent
Propriétés des Public Private Protected (PPP) en PHP5
Pour définir une propriété, il faut définir sa visibilité : PRIVATE, PROTECTED ou PUBLIC.
La visibilité est une notion de l’objet en PHP5 permettant de définir, de déterminer la portée (scope) d’une propriété ou d’une méthode

Commentaires récents