Өз 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 әдісін жүзеге асырыңыз.
Оның жұмысын тексеріңіз.