Татбиқи модели барҳамаи ҳамаи моделҳо дар MVC framework-и худ
Биёед синфи барҳамаи ҳамаи моделҳоро татбиқ кунем:
<?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-ро татбиқ кунед. Коркарди онро санҷед.