⊗ppMVDFmMdP 35 of 35 menu

Имплементация на родител на всички модели

Нека да реализираме родителския клас на всички модели:

<?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) { // тук ще има някакъв код } protected function findMany($query) { // тук ще има някакъв код } } ?>

Както виждате, в конструктора на класа ние осъществяваме връзка с базата данни. Има, обаче, проблем: всеки създаден модел (ако в рамките на едно действие на контролера има няколко модела) ще направи своя собствена връзка с базата данни, а това не е оптимално.

Нека да направим така, че връзката с базата данни да се създава само за първия създаден модел, а останалите модели да използват вече създадената връзка. За целта свойството link ще направим статично:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // ако свойството не е зададено, тогава се свързваме 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) { } } ?>

Копирайте дадения код на класа Model и го поставете във файла /core/Model.php.

Реализирайте метода findOne в този клас. Проверете неговата работа.

Реализирайте метода findMany в този клас. Проверете неговата работа.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне