Easy-Micro

LANGAGE MVC PHP
Héritage

MVC en PHP : l'héritage

Le principe de l'héritage

Vous vous souvenez de la fonction membre dbConnect() ? Nous avons dû la recopier à l'identique dans 2 classes différentes : PostManager et CommentManager. On a donc la même fonction dans 2 fichiers différents. Nos 2 classes ont besoin d'une fonction commune. Comment leur faire partager cette fonction ? Avec l'héritage !

Une classe peut hériter d'une autre classe pour en récupérer toutes ses caractéristiques.

Utiliser l'héritage avec le modèle

On va faire hériter nos classes PostManager et CommentManager d'une nouvelle classe nommée Manager dans un nouveau fichier du dossier model : Manager.php. Cette classe va contenir la fonction de connexion à la base de données :

model/Manager.php
<?php

class Manager {
    protected function dbConnect() {
        $db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
        return $db;
    }
}


Vous pouvez voir que la fonction dbConnect() n'est ni private ni public, elle est... protected. Le type protected est identique à private, mais il autorise quand même les classes filles à appeler la fonction.

Nos classes PostManager et CommentManager doivent être mises à jour pour qu'elles héritent de Manager (on dit aussi qu'elles "l'étendent", car on utilise le mot-clé extends).

model/PostManager.php
<?php
require_once("model/Manager.php");

class PostManager extends Manager {
    // ...
}

model/CommentManager.php
<?php
require_once("model/Manager.php");

class CommentManager extends Manager {
    // ...
}


> Voir cet exemple Easy-Micro

« Prev - Architecture MVC en PHP - Next »


< Page précédente MVC PHP Page suivante >