ඔබේම 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 ක්රමය ක්රියාත්මක කරන්න.
එහි ක්රියාකාරීත්වය පරීක්ෂා කරන්න.