La POO (Programmation Orienté Objet) consiste à définir et faire interagir entre eux des “objets” pour faciliter l’écriture et la maintenance du code. Dans le jargon on dis le paradigme orienté objet faisant référence à une approche, une méthode de programmation. L'objet est alors la représentation d'une class avec des propriétés et des méthodes qui constituent l'objet. La POO offre les avantages d'un code réutilisable, d'une conception de l'algorithme plus clair et organisé, d'un code modulaire et de son adaptabilité aux Design Pattern.
Une Class un est patron de conception et de modélisation de données, définissant un ensemble de propriétés (atributs) et de comportement (méthodes) qui composent la structure de chaque objet
Un « objet » est une représentation d'une chose matérielle ou immatérielle du réel à laquelle on associe des propriétés et des actions.
La visibilité d'une propriété ou d'une méthode est son accessibilité ou son utilisation, à partir d'autres parties de code a l'interieur d'un programme. Propriétés ou méthodes de Class:
La méthode spécifique pour construire un nouvel objet s'appel le constructeur. Elle fait partie des méthodes magique de PHP qui sont appelées dans des situations spécifique.
L’encapsulation permet de restreindre l’accès direct aux états et empêche la modification de l’objet hors de ses méthodes. Ainsi, l’encapsulation est un mécanisme qui empêche donc de modifier ou d’accéder aux objets par un autre moyen que les méthodes proposées, et de ce fait, permet de garantir l’intégrité des objets.
Étendre une Class signifie qu'elle va hérité des propriétés et des méthodes d'une autre Class tout en ajoutant ou modifiant ces propriétés ou son comportement (ces fonctionnalités), c'est le concept clé mis en oeuvre de l'héritage. - Un Animal sera une class avec une propriété espèce, qui possèdera une méthode crie() - Un Oiseau sera une Class qui étendera de Animal, avec une propriété couleur et possèdera une méthode pousser() qui héritera et appelera la méthode crie() de la Class Animal - ainsi nous pouvons construire un Oiseau, blanc qui lorsqu'on appelera la méthode pousser() fera un crie()
// Définition de la class parente (ou superclasse)
class Animal {
protected $espece;
public function __construct($espece) {
$this->espece = $espece;
}
public function getEspece() {
return $this->espece;
}
public function parler() {
echo "Je suis le " . $this->espece . ", ";
}
}
// Définition de la class enfant (ou sous-classe) qui étend la class Animal
class Oiseau extends Animal {
private $cri;
public function __construct($espece, $cri) {
parent::__construct($espece); // Appel du constructeur de la class parente
$this->cri = $cri;
}
public function pousser() {
parent::cri();
echo "mon crie est le " . $this->cri . ".";
}
// Création d'un objet de la classe enfant
$canard = new Oiseau("Canard", "cancane");
$canard->pousser();
<< produira la sortie suivant: Je suis le Canard, mon cri est le cancane >>
L'opérateur de résolution de portée :: est utilisé pour accéder aux membres d'une classe et appeler les méthodes, les propriétés statiques et les constantes de Classe dans un contexte de la programmation orientée objet.
Une méthode ou une propriété statique dans un langage de programmation orienté objet est une méthode ou une propriété qui appartient à la classe elle-même plutôt qu'à une instance spécifique de cette classe. Cela signifie qu'ils peuvent être appelés ou accédés directement à partir de la classe elle-même, sans avoir besoin de créer une instance de la classe.
Le polymorphisme en programmation orientée objet (POO) est un concept qui permet à des objets de différentes classes d'être traités de manière uniforme s'ils possèdent une interface commune.
Une méthode abstraite est une méthode déclarée dans une classe mais qui n'a pas d'implémentation concrète. Elle fournit une interface ou un contrat que les classes dérivées doivent implémenter. Une classe abstraite est une classe qui peut contenir des méthodes abstraites ainsi que des méthodes concrètes, mais elle ne peut pas être instanciée elle-même ; elle sert de modèle pour d'autres classes qui étendent cette classe abstraite.
Le chainage de méthodes est un concept de programmation qui permet d'appeler plusieurs méthodes sur un même objet.Pour permettre le chaînage de méthodes, les méthodes doivent retourner l'objet sur lequel elles ont été appelées. Cela permet à l'appelant de continuer à appeler des méthodes sur cet objet