Dans le cours : PHP : La programmation orientée objet

Comprendre le constructeur

Dans cette vidéo, nous allons essayer de voir ensemble la notion de constructeur. Pour bien comprendre comment marche un constructeur, nous allons dupliquer la classe Client. Je me rends au niveau de la classe Client et je vais la dupliquer. Je la copie et je la colle dans les classes ici. Parfait ! Je renomme ma classe Client, je l'appelle ClientPlus.php, et je renomme ma classe de la même façon, ClientPlus. Ma classe ClientPlus a été correctement mise en place. Maintenant, je vais devoir mettre en place un constructeur. Qu'est-ce qu'un constructeur ? C'est une méthode de la classe. Je crée ma méthode constructeur : public function __construct( ). Cette méthode construct est une méthode magique, parce qu'à partir du moment où vous l'avez mise en place, vous pouvez l'utiliser pour initialiser des informations. J'ai donc affiché la méthode construct, mais il faut savoir que même si je ne l'avais pas fait, par défaut, elle est toujours appelée quand vous créez un objet. Dès que vous faites un $client = new ClientPlus à cet endroit-là, qu'est-ce qui se passe ? Dès que l'on fait cette opération d'instanciation, automatiquement, la première méthode qui est appelée, c'est le constructeur, c'est celle-là. On peut en profiter pour initialiser des informations. Par exemple, ce que nous allons essayer de faire ici, c'est d'initialiser les setters. On aimerait bien que lorsque l'on fait un $client = new Client, on puisse automatiquement suivre cette logique-là. La logique des setters, setNom, setPrenom, setAge et setId, j'aimerais ne pas avoir à la faire ici, mais directement dans le constructeur. Dès que l'on instancie l'objet, on peut automatiquement faire cela. Je vais donc retirer tout ce qui est là et le refaire dans le constructeur. C'est parti. Je vais passer les setters dans le constructeur. Je fais un $this → setNom qui prendra en paramètre un nom. Je ferai un $this → setPrenom qui prendra en paramètre un prénom, un $this → setAge qui prendra en paramètre un âge, puis un $this → setEmail qui prendra en paramètre un e-mail ($email) et un $this setId qui prendra en paramètre un identifiant. C'est fait, j'ai défini mes setters dans le constructeur. Bien sûr, dans le constructeur ici, mes setters attendent un paramètre, ils attendent un nom, un prénom, un âge, un e-mail et un id. Il faut que dans les parenthèses du constructeur, je passe ces paramètres-là. Dans le constructeur, je vais donc passer un nom, $nom, une variable $prenom, une variable $age, une variable $email et une variable $id. Ce que je viens de passer là, ce sont juste des paramètres de remplacement. Cela veut dire que ce n'est pas le vrai nom, mais un paramètre qui va attendre un nom, un paramètre qui va attendre un prénom ou un paramètre qui attendra un âge, un e-mail et un id. Maintenant, où est-ce que je passe ces paramètres ? Je vais les passer au niveau de l'objet. Quand je construis mon objet ici, quand je fais mon instanciation, au niveau de la classe qui est appelée, j'ai des parenthèses. Que représentent ces parenthèses ? Elles représentent le constructeur. Les parenthèses qui sont là représentent les parenthèses du constructeur. Donc les paramètres que je passe au constructeur, je vais les passer ici, dans les parenthèses de ma classe. Par exemple, pour créer mon client, j'attends un nom, c'est ' ndaw ', et je vais le passer directement ici. Le deuxième paramètre est un prénom, je vais passer ' laurent '. Le troisième paramètre, est un âge, je vais mettre 35. Le quatrième paramètre était un e-mail, je vais mettre un e-mail : ' tester@gmail.com '. Le dernier paramètre est un id, je mets 1. Là, vous voyez, c'est bon. Je vais créer mon objet, qui sera un nouveau client. Et pour ce nouveau client, au lieu d'appeler mon objet et les setters, comme on le faisait avant, qu'allons-nous faire ? Nous allons, directement dans les parenthèses de notre objet ici, passer les éléments qui seront récupérés par les setters qui sont dans le constructeur.

Table des matières