Implementering van die ouer van alle modelle in jou MVC-raamwerk
Laat ons die ouerklas van alle modelle implementeer:
<?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)
{
// daar sal een of ander kode wees
}
protected function findMany($query)
{
// daar sal een of ander kode wees
}
}
?>
Soos jy kan sien, in die konstruktor van die klas, inisialiseer ons die skakel na die databasis. Daar is eger 'n probleem: elke model wat geskep word (as daar binne een aksie van die kontroleerder verskeie modelle is) sal sy eie skakel na die databasis maak, en dit is nie optimaal nie.
Kom ons sorg dat die skakel na die
databasis slegs vir die eerste geskepte
model gemaak word, en die ander modelle reeds
geskep skakel gebruik. Om dit te doen, maak ons die eienskap
link staties:
<?php
namespace Core;
class Model
{
private static $link;
public function __construct()
{
if (!self::$link) { // as die eienskap nie gestel is nie, dan skakel ons
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)
{
}
}
?>
Kopieer die gegewe kode van die klas Model
en plaas dit in die lêr /core/Model.php.
Implementeer die metode findOne in hierdie klas.
Toets sy werking.
Implementeer die metode findMany in hierdie klas.
Toets sy werking.