Öz MVC freymvorkunda bütün modellərin valideyninin realizasiyası
Gəlin bütün modellərin valideyn sinifini realizasiya edək:
<?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)
{
// burada bir kod olacaq
}
protected function findMany($query)
{
// burada bir kod olacaq
}
}
?>
Gördüyünüz kimi, sinfin konstruktorunda biz verilənlər bazasına qoşuluruq. Lakin bir problem var: yaradılan hər bir model (əgər nəzarətçinin bir hərəkəti içərisində bir neçə model olarsa) öz qoşulmasını verilənlər bazasına edəcək, bu isə optimal deyil.
Gəlin elə edək ki, verilənlər bazasına qoşulma
yalnız ilk yaradılan model üçün yaradılsın,
qalan modellər isə artıq yaradılmış qoşulmadan
istifadə etsinlər. Bunun üçün link xüsusiyyətini
statik edək:
<?php
namespace Core;
class Model
{
private static $link;
public function __construct()
{
if (!self::$link) { // əgər xüsusiyyət təyin olunmayıbsa, onda qoşuluruq
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 sinfinin göstərilən kodunu kopyalayın
və /core/Model.php faylında yerləşdirin.
Bu sinifdə findOne metodunu realizasiya edin.
Onun işini yoxlayın.
Bu sinifdə findMany metodunu realizasiya edin.
Onun işini yoxlayın.