Öz MVC çärjegiňizde ähli modelleriň ata-klasyny amala aşyrmak
Geliň, ähli modelleriň ata-klasyny amala aşyralyň:
<?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)
{
// şu ýerde käbir kod bolar
}
protected function findMany($query)
{
// şu ýerde käbir kod bolar
}
}
?>
Görşüňiz ýaly, klasyň konstruktorunda biz mağlumatlar bazasyna birikdirmäni amala aşyrýarys. Emma, ýöne bir meselä bar: her döredilýän model (eger bir kontroler hereketi içinde birnäçe model bolsa) öz mağlumatlar bazasyna birikdirmesini eder, bu bolsa optimal däl.
Geliň, şeýle edeliň, mağlumatlar bazasyna
birikdirme diňe birinji döredilen model üçin
döredilsin, galan modeller bolsa eýýäm
döredilen birikdirmäni ulanysyn. Bunuň üçin häsiýeti
link statik edeliň:
<?php
namespace Core;
class Model
{
private static $link;
public function __construct()
{
if (!self::$link) { // eger häsiýet bellänmedik bolsa, onda birikdirýäris
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 klasynyň getirilen koduny göçürip alyň
we ony /core/Model.php faýlynda ýerleşdiriň.
Bu klasda findOne metodyny amala aşyryň.
Onuň işini barlaň.
Bu klasda findMany metodyny amala aşyryň.
Onuň işini barlaň.