⊗ppMVDFmMdP 35 of 35 menu

Barcha modellar uchun ota-klassni amalga oshirish

Keling, barcha modellar uchun ota-klassni yaratamiz:

<?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) { // bu yerda qandaydir kod bo'ladi } protected function findMany($query) { // bu yerda qandaydir kod bo'ladi } } ?>

Ko'rib turganingizdek, klass konstruktorida biz ma'lumotlar bazasiga ulanishni amalga oshiramiz. Biroq, muammo shundaki: har bir yaratilgan model (agar kontrollerning bir harakatida bir nechta modellar bo'lsa) o'zining ma'lumotlar bazasiga ulanishini yaratadi va bu optimal emas.

Keling, shunday qilaylikki, ma'lumotlar bazasiga ulanish faqat birinchi yaratilgan model uchun yaratilsin, qolgan modellar esa allaqachon yaratilgan ulanishdan foydalansin. Buning uchun link xususiyatini statik qilamiz:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // agar xususiyat belgilanmagan bo'lsa, ulanamiz 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 klassining keltirilgan kodini nusxalang va uni /core/Model.php faylida joylashtiring.

Ushbu klassda findOne metodini amalga oshiring. Uning ishlashini tekshiring.

Ushbu klassda findMany metodini amalga oshiring. Uning ishlashini tekshiring.

azbydeenesfrkakkptruuz