Créa-blog

Ressources pour développeur web

Classe et objet : Programmation orientée objet en PHP

Accueil PHP 8 Classe et objet : Programmation orientée objet en PHP

Dans ce chapitre, nous allons explorer la création et l’utilisation de classe et objet en PHP. Comprendre ces deux concepts est crucial pour développer des applications orientées objet robustes et modulaires.

Définition d’une classe

En PHP, vous pouvez définir une classe à l’aide du mot-clé class, suivi du nom de la classe et de ses propriétés et méthodes entre des accolades. Voici un exemple de déclaration de classe simple :

class Voiture {
    // Propriétés
    public $marque;
    public $modele;
    public $couleur;

    // Méthodes
    public function demarrer() {
        echo "La voiture démarre.";
    }

    public function arreter() {
        echo "La voiture s'arrête.";
    }
}

Dans cet exemple, nous avons une classe Voiture avec trois propriétés (marque, modele, couleur) et deux méthodes (demarrer, arreter).

Pour rappel, la visibilité des propriétés et des méthodes peut être définie à l’aide de mots-clés tels que public, protected et private.

  • Public : Les propriétés et méthodes publiques sont accessibles depuis n’importe où, à l’intérieur ou à l’extérieur de la classe.
  • Protected : Les propriétés et méthodes protégées sont accessibles uniquement depuis la classe elle-même et les classes héritières.
  • Private : Les propriétés et méthodes privées ne sont accessibles qu’à l’intérieur de la classe où elles sont définies.

Instanciation d’objets

Une fois que nous avons défini une classe, nous pouvons créer des objets à partir de cette classe en utilisant le mot-clé new. Par exemple :

$maVoiture = new Voiture();

Maintenant, $maVoiture est une instance de la classe Voiture, et nous pouvons accéder à ses propriétés et méthodes.

Accès aux propriétés et méthodes

Pour accéder aux propriétés et méthodes d’un objet, utilisez l’opérateur de résolution de portée ->. Par exemple, pour accéder à la propriété marque de notre objet maVoiture, nous faisons :

$maVoiture->marque = "Peugeot";

Pour appeler une méthode, utilisez également l’opérateur ->. Par exemple, pour démarrer la voiture, nous faisons :

$maVoiture->demarrer();

Constructeur et destructeur

En PHP, vous pouvez définir des méthodes spéciales appelées constructeur et destructeur.

  • Le constructeur est une méthode spéciale appelée automatiquement lors de la création d’un nouvel objet. Il est utilisé pour initialiser les propriétés de l’objet.
  • Le destructeur est une méthode spéciale appelée automatiquement lorsqu’un objet n’est plus utilisé ou lorsque le script se termine. Il est utilisé pour effectuer des opérations de nettoyage, telles que la libération de ressources.

Voici comment définir un constructeur et un destructeur dans une classe :

class Voiture {
    // Propriétés
    public $marque;
    public $modele;
    public $couleur;

    // Constructeur
    public function __construct($marque, $modele, $couleur) {
        $this->marque = $marque;
        $this->modele = $modele;
        $this->couleur = $couleur;
    }

    // Destructeur
    public function __destruct() {
        echo "La voiture est détruite.";
    }
}

Pour appeler cette classe Voiture et utiliser ses fonctionnalités, vous devez d’abord l’instancier en créant un nouvel objet à partir de cette classe. Voici comment vous pouvez le faire :

// Instanciation d'un nouvel objet de la classe Voiture
$maVoiture = new Voiture("Peugeot", "208", "Rouge");

// Accès aux propriétés de l'objet
echo "Marque de la voiture : " . $maVoiture->marque . "
"; // Affichera : Marque de la voiture : Peugeot echo "Modèle de la voiture : " . $maVoiture->modele . "
"; // Affichera : Modèle de la voiture : 208 echo "Couleur de la voiture : " . $maVoiture->couleur . "
"; // Affichera : Couleur de la voiture : Rouge // Appel des méthodes de l'objet $maVoiture->demarrer(); $maVoiture->arreter();

Nous avons créé un nouvel objet de la classe Voiture en utilisant le mot-clé new, et nous avons passé des valeurs pour les propriétés marque, modèle et couleur dans le constructeur.

Ensuite, nous avons accédé aux propriétés de l’objet en utilisant l’opérateur -> et affiché leurs valeurs.

Enfin, nous avons appelé les méthodes de l’objet, comme demarrer() et arreter(), en utilisant également l’opérateur ->.

Le mot-clé $this dans le constructeur

le constructeur de la classe est utilisé pour initialiser les propriétés de l’objet nouvellement créé. Dans ce contexte, $this fait référence à l’instance actuelle de la classe, c’est-à-dire à l’objet sur lequel le constructeur est appelé.

Reprenons notre exemple pour mieux comprendre. Supposons que nous ayons une classe Voiture avec quelques propriétés telles que marque, modele et couleur, et un constructeur pour initialiser ces propriétés :

 class Voiture {
    public $marque;
    public $modele;
    public $couleur;

    // Constructeur
    public function __construct($marque, $modele, $couleur) {
        // Utilisation de $this pour accéder aux propriétés de l'objet
        $this->marque = $marque;
        $this->modele = $modele;
        $this->couleur = $couleur;
    }
}

Dans ce cas, lorsque vous créez un nouvel objet Voiture et que vous passez des valeurs au constructeur, comme par exemple :

$nouvelleVoiture = new Voiture("Peugeot", "208", "Rouge");

Dans le constructeur, $this->marque = $marque, $this->modele = $modele et $this->couleur = $couleur font référence aux propriétés de l’objet actuellement en cours de construction. $this est utilisé pour différencier les propriétés de l’objet des variables locales du constructeur (qui ont le même nom). Ainsi, $this->marque signifie « la propriété marque de cet objet en cours de construction », et elle est initialisée avec la valeur passée en argument $marque lors de la création de l’objet.

En programmation orientée objet, $this est un mot-clé spécial utilisé pour faire référence à l’objet actuel ou à l’instance de la classe sur laquelle une méthode est appelée. Il est généralement utilisé dans le contexte d’une méthode pour accéder aux propriétés et aux méthodes de cet objet, permettant ainsi de manipuler ses données et de définir son comportement.

$this sert à :

  1. Accéder aux propriétés de l’objet et les manipuler.
  2. Appeler les méthodes de l’objet.
  3. Faire référence à l’objet actuel dans le contexte d’une méthode.

En utilisant $this, vous pouvez interagir avec l’objet (et non la classe !!!) sur lequel la méthode est appelée, lui permettant ainsi de fonctionner de manière dynamique en utilisant ses propres données et méthodes.

Pour résumer :

Imaginez que vous construisiez une maison. Le constructeur et le destructeur, en programmation, sont un peu comme des ouvriers spéciaux chargés de tâches importantes pendant la construction et la démolition de cette maison.

Le constructeur :

C’est comme le premier ouvrier qui arrive sur le chantier lorsque vous commencez à construire votre maison. Il sait exactement quoi faire dès le début. Il s’occupe de préparer tout ce dont vous avez besoin avant même que vous n’entriez dans la maison. Par exemple, il met en place l’électricité, la plomberie, et il peut même installer les meubles de base si vous lui donnez les instructions appropriées.

En programmation, le constructeur est une méthode spéciale que vous pouvez ajouter à votre classe. Elle est automatiquement appelée dès que vous créez un nouvel objet de cette classe. Son travail est de préparer cet objet en lui donnant des valeurs initiales pour ses propriétés (variables). Par exemple, si votre classe est une Voiture, vous pouvez utiliser le constructeur pour spécifier la marque, le modèle et la couleur de la voiture dès sa création.

Le destructeur :

Maintenant, imaginez que vous vouliez démolir votre maison. Le destructeur est un ouvrier spécial qui arrive lorsque vous décidez de démolir votre maison. Son travail est de nettoyer et de fermer tout ce qui doit l’être avant de quitter le chantier. Il s’assure que tout est remis en état avant de partir.

En programmation, le destructeur est également une méthode spéciale. Mais au lieu d’être appelé lorsque vous créez un objet, il est appelé lorsque cet objet n’est plus utilisé ou que le script touche à sa fin. Son travail est de libérer les ressources ou de nettoyer tout ce qui doit être nettoyé avant que l’objet ne disparaisse complètement. Par exemple, si votre classe Voiture utilise des ressources spéciales comme des connexions de base de données, le destructeur pourrait être utilisé pour fermer ces connexions lorsque la voiture n’est plus nécessaire.