Utekelezaji wa mzazi wa miradi yote katika mfumo wako wa MVC
Wacha tutekeze darasa la mzazi la miradi yote:
<?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)
{
// tutakuwa na baadhi ya code hapa
}
protected function findMany($query)
{
// tutakuwa na baadhi ya code hapa
}
}
?>
Kama unavyoona, katika mjenzi wa darasa tunafanya muunganisho wa database. Hata hivyo, kuna tatizo: kila model inayotengenezwa (ikiwa ndani ya kitendo kimoja cha controller kutakuwa na models kadhaa) itafanya muunganisho wake kwa database, na hii si bora.
Wacha tufanye ili muunganisho wa
database utengenezwe tu kwa model ya kwanza iliyotengenezwa,
na models nyingine zitumie muunganisho ulioko
tayari. Kwa ajili hii sifa
link tufanye iwe static:
<?php
namespace Core;
class Model
{
private static $link;
public function __construct()
{
if (!self::$link) { // ikiwa sifa haijabainishwa, basi tunaunganisha
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)
{
}
}
?>
Nakili code iliyotajwa ya darasa Model
na uiweke kwenye faili /core/Model.php.
Tekeleza mbinu findOne katika darasa hili.
Angalia kazi yake.
Tekeleza mbinu findMany katika darasa hili.
Angalia kazi yake.