⊗ppMVDFmMdP 35 of 35 menu

Implémentation du parent de tous les modèles

Implémentons la classe parente de tous les modèles :

<?php namespace Core; class Model { private $link; public function __construct() { $this->link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query($this->link, "SET NAMES 'utf8'"); } protected function findOne($query) { // il y aura du code ici } protected function findMany($query) { // il y aura du code ici } } ?>

Comme vous le voyez, dans le constructeur de la classe, nous établissons la connexion à la base de données. Il y a, cependant, un problème : chaque modèle créé (si à l'intérieur d'une même action du contrôleur il y a plusieurs modèles) va établir sa propre connexion à la base de données, ce qui n'est pas optimal.

Faisons en sorte que la connexion à la base soit établie uniquement pour le premier modèle créé, et que les modèles suivants utilisent la connexion déjà créée. Pour cela, rendons la propriété link statique :

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // si la propriété n'est pas définie, alors on se connecte self::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query(self::$link, "SET NAMES 'utf8'"); } } protected function findOne($query) { } protected function findMany($query) { } } ?>

Copiez le code donné de la classe Model et placez-le dans le fichier /core/Model.php.

Implémentez la méthode findOne dans cette classe. Testez son fonctionnement.

Implémentez la méthode findMany dans cette classe. Testez son fonctionnement.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser