⊗ppMVDFmMdP 35 of 35 menu

Implementierung des Elternmodells aller Modelle

Lassen Sie uns die Elternklasse aller Modelle implementieren:

<?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) { // hier wird etwas Code stehen } protected function findMany($query) { // hier wird etwas Code stehen } } ?>

Wie Sie sehen, stellen wir im Konstruktor der Klasse die Verbindung zur Datenbank her. Es gibt jedoch ein Problem: Jedes erstellte Modell (wenn innerhalb einer Controller-Aktion mehrere Modelle vorhanden sind) wird eine eigene Verbindung zur Datenbank herstellen, was nicht optimal ist.

Lassen Sie uns dies so ändern, dass die Verbindung zur Datenbank nur für das erste erstellte Modell hergestellt wird und die restlichen Modelle die bereits erstellte Verbindung verwenden. Dazu machen wir die Eigenschaft link statisch:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // wenn Eigenschaft nicht gesetzt, dann verbinden 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) { } } ?>

Kopieren Sie den angegebenen Code der Klasse Model und platzieren Sie ihn in der Datei /core/Model.php.

Implementieren Sie die Methode findOne in dieser Klasse. Testen Sie ihre Funktion.

Implementieren Sie die Methode findMany in dieser Klasse. Testen Sie ihre Funktion.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen