Easy-Micro

LANGAGE Intro POO PHP
Constructeur PHP

Introduction à la programmation orientée objet en PHP

Méthode constructeur

La méthode constructeur ou plus simplement le constructeur d'une classe est une méthode qui va être appelée (exécutée) automatiquement à chaque fois qu'on va instancier une classe.

Le constructeur va ainsi nous permettre d'initialiser des propriétés dès la création d'un objet, ce qui va pouvoir être très intéressant dans de nombreuses situations.

Actuellement, lorsque l'on créé un nouvel objet à partir de la classe Utilisateur, il faut appeler les méthodes setNom() et setPasse() pour définir les valeurs de nos propriétés $user_name et $user_pass, comme ceci $mimi->setNom('Mi'); et $mimi->setPasse(123456); ce qui est loin d'être optimal.

Ici, on aimerait idéalement pouvoir définir immédiatement la valeur de nos deux propriétés lors de la création de l'objet (en récupérant en pratique les valeurs passées par l'utilisateur). Pour cela, on va pouvoir utiliser un constructeur.

Le fichier classes/utilisateur.class.php
<?php
class Utilisateur {

  // Propriétés (attributs)
  private $user_name;
  private $user_pass;

  public function __construct($n, $p){
            $this->user_name = $n;
            $this->user_pass = $p;
  }

  public function getNom(){
      // Pseudo-variable $this pour faire référence à l'objet courant
      return $this->user_name;
  }
        
  public function setNom($new_user_name){
      $this->user_name = $new_user_name;
  }
        
  public function setPasse($new_user_pass){
      $this->user_pass = $new_user_pass;
  }

}
Ajout d'un constructeur de classe

Fichier principal

Fichier index.php
<!DOCTYPE html>
<html lang="fr">
<head>
<title>POO PHP</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/mesStyles.css">
</head>
<body>
<h1>Inscription</h1>
<?php
     require 'classes/utilisateur.class.php';

     // nouvelles instances de notre classe Utilisateur
     $Utilisateur1 = new Utilisateur('Mimi', 123456);
     $Utilisateur2 = new Utilisateur('Fifi', 'abcdef');
 
     echo $Utilisateur1->getNom().'<br>';
     echo $Utilisateur2->getNom().'<br>';
?>
</body>
</html>
On passe les arguments à notre constructeur lors de l'instanciation de notre classe.

Lors de l'instanciation de notre classe Utilisateur, le PHP va automatiquement rechercher une méthode __construct() dans la classe à instancier et exécuter cette méthode si elle est trouvée.

Exercice

Même exercice que précédemment mais en utilisant le constructeur de classe comme ceci : -> Voir cet exemple Easy-Micro

Formulaire HTML

L'objectif est de récupérer les données d'un formulaire afin de créer une nouvelle instance d'utilisateur.

Fichier index.php
<!DOCTYPE html>
<html  lang="fr">
<head>
<title>POO PHP</title>
<meta charset="utf-8">
<meta name="viewport" content="">
<link rel="stylesheet" href="css/mesStyles.css">
</head>
<body>
<h1>Inscription</h1>
<form action='traitement_inscription.php' method='post'>
         <label for='nom'>Nom d'utilisateur : </label>
         <input type='text' name='nom' id='nom'><br>
         <label for='pass'>Choisissez un mot de passe.</label>
         <input type='password' name='pass' id='pass'><br>
         <input type='submit' value='Envoyer'>
</form>
</body>
</html>

Le fichier traitement_inscription.php
On admet qu'une vérification des données reçues est déjà réalisée en Javascript (preg_match() + filtres)
<?php
    require 'classes/utilisateur.class.php';
    
    // on pourrais faire ici le stockage des données en base de données
    $Utilisateur1 = new Utilisateur($_POST['nom'], $_POST['pass']);

    // affiche le nom d'un utilisateur
    echo $Utilisateur1 -> getNom().'<br>';
?>

-> Voir cet exemple de formulaire Easy-Micro
« Prev - Intro POO PHP - Next »


< Page précédente INTRO POO PHP Page suivante >