• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 11/06/2019

Non mais vraiment, qu'est-ce que la programmation orientée objet ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Bon, je vous sens sceptiques. 😅

Le chapitre précédent avait pour but de vous faire comprendre pourquoi on a un jour inventé la programmation orientée objet. En deux mots : simplifier la réutilisation de morceaux du programme.

Maintenant, si vous voulez rentrer dans le concret, pas de problème !

Définir une classe pour créer des objets

Un objet est un ensemble de variables et de fonctions, regroupées dans un même endroit. On dit qu'on y encapsule les données :

dfd
Les données sont encapsulées dans l'objet

Concrètement, comment ça se passe dans du code PHP ?

Pour pouvoir créer un objet, vous devez d'abord définir une classe. La classe est une sorte de plan qui indique comment créer des objets.

Imaginez par exemple une classe  Maison  : c'est le plan de construction.
Grâce à la classe, on peut ensuite créer plusieurs objets (  maisonDeMathieu  ,  maisonDeJulie  ...).

Une classe décrit comment créer des objets d'un certain type
Une classe décrit comment créer des objets d'un certain type

Créer une classe

Lorsqu'on crée une classe, on la place dans un fichier à son nom. Par exemple  Maison.php  .

Voici à quoi ressemble une classe (imaginaire) nommée  Maison  :

<?php

class Maison
{
    // Variables membres

    private $largeur;
    private $longueur;
    private $nombreEtages;
    private $porte;
    private $temperature;


    // Fonctions membres

    public function ouvrirPorte()
    {
        // ...
    }

    public function fermerPorte()
    {
        // ...
    }

    public function modifierTemperature($temperature)
    {
        // ...
    }
}

Il y a 2 types d'éléments dans la classe :

  • Des variables membres

  • Des fonctions membres

Comme je vous le disais, variables et fonctions sont encapsulées dans la classe. Cela permet de ne pas les mélanger avec d'autres variables et fonctions du même nom dans votre programme. Vous pouvez donc sans problème avoir 2 fonctions nommées  ouvrirPorte  dans votre code, à condition qu'elles soient dans des classes différentes.

Instancier des objets

La classe créée ne suffit pas. Si nous voulons l'utiliser, nous devons l'instancier pour créer... des objets.

En gros, avec la classe on a créé le plan... il faut maintenant construire la maison !

On va créer ces objets dans un autre fichier. Vous pouvez appeler celui-ci comme vous voulez, disons que c'est  index.php  :

<?php

// Chargement de la classe
require_once("Maison.php");

// Instanciation d'un objet
$maisonDeMathieu = new Maison();
// Instanciation d'un autre objet
$maisonDeJulie = new Maison();

$maisonDeMathieu->ouvrirPorte();
$maisonDeMathieu->fermerPorte();
$maisonDeMathieu->modifierTemperature(21);

$maisonDeJulie->modifierTemperature(55); // 🔥😈

Ce code fait plusieurs choses :

  1. Il charge la classe en mémoire. Eh oui, comme les fonctions, si vous ne les avez pas incluses au préalable, vous ne pourrez pas les utiliser !

  2. Il instancie des objets à partir de cette classe (la  maisonDeMathieu  et la  maisonDeJulie  ).  $maisonDeMathieu  et  $maisonDeJulie  ne sont donc pas des variables mais des objets !

  3. Puis il appelle différentes fonctions membres de ces objets pour les modifier. Il ouvre puis ferme la porte de la maison de Mathieu, lui met la température à 21°... Chaque objet étant indépendant, comme vous pouvez le voir j'ai pu m'amuser un peu et monter le thermostat à 55° dans la maison de Julie. 😈

Exemple de certificat de réussite
Exemple de certificat de réussite