⊗ppMVDFmMdP 35 of 35 menu

Implementacja rodzica wszystkich modeli we własnym frameworku MVC

Zaimplementujmy nadrzędną klasę wszystkich modeli:

<?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) { // tutaj będzie jakiś kod } protected function findMany($query) { // tutaj będzie jakiś kod } } ?>

Jak widzicie, w konstruktorze klasy realizujemy połączenie z bazą danych. Jest jednak problem: każdy tworzony model (jeśli w ramach jednego działania kontrolera będzie kilka modeli) będzie wykonywać własne połączenie z bazą danych, a to nie jest optymalne.

Zróbmy tak, aby połączenie z bazą tworzyło się tylko dla pierwszego utworzonego modelu, a pozostałe modele wykorzystywały już utworzone połączenie. W tym celu właściwość link zróbmy statyczną:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // jeśli właściwość nie jest ustawiona, to łączymy się 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) { } } ?>

Skopiujcie podany kod klasy Model i umieśćcie go w pliku /core/Model.php.

Zaimplementuj metodę findOne w tej klasie. Sprawdź jej działanie.

Zaimplementuj metodę findMany w tej klasie. Sprawdź jej działanie.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć