НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗ppMVDFmMdP 35 of 35 menu

Реализация родителя всех моделей в своем MVC фреймворке

Давайте реализуем родительский класс всех моделей:

<?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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить