ඔබේම MVC රාමුවක රවුටරයක් සංවර්ධනය කිරීම
දැන් ඔබට රවුටරය සංවර්ධනය කිරීමට අවශ්යයි. එය වන්නේ, විමසුම් කළ URL එක ගෙන, ලබා දී ඇති URL එකට කුමන රවුට් එක අනුරූප වේද යන්න තීරණය කරමින්, රවුට් අරාවක් ගන්නා වර්ගයකි. අනුරූප රවුට් එක සොයා ගැනීමෙන් පසු, අපගේ වර්ගය රවුට් පරාමිතීන්ට අනුරූප වන URL කොටස් ලබා ගත යුතුය.
අපගේ රවුටරය එහි ප්රතිඵලය ලෙස Track වර්ගයේ වස්තුවක්
ආපසු ලබා දෙනු ඇතැයි උපකල්පනය කරමු. එය මෙම විමසුම සඳහා
කැඳවිය යුතු පාලකයේ නම, ක්රියාවේ නම සහ URL වලින්
පරාමිතීන් අඩංගු වේ.
අපගේ Track වර්ගයට ඕනෑමම කියවීමට පමණක් පහසු
controller, action සහ params යන
ගුණාංග ඇතැයි උපකල්පනය කරමු:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
උදාහරණය
උදාහරණයක් ලෙස, අඩවි ලිපින තීරුවේ
/test/1/2/ ඇතුලත් කර ඇතැයි උපකල්පනය කරමු.
අපට මෙම ලිපිනයට අනුරූප වන රවුට් එකක් ඇතැයි උපකල්පනය කරමු:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
මෙයින් අදහස් කරන්නේ පාලකයේ නම test වනු ඇති අතර,
ක්රියාවේ නම - index වනු ඇත. පරාමිති අරාව
පහත පරිදි වනු ඇත:
<?php
['var1' => 1, 'var2' => 2]
?>
මෙම පාඩමේ අරමුණ වන්නේ Track වර්ගයේ වස්තුවක්
ආපසු ලබා දෙන Router වර්ගය ලිවීමයි.
අනෙක් සියල්ල දැනට අපට අදාළ නොවේ.
අපි මෙම වර්ගය ලිවීමට පටන් ගනිමු.
ප්රායෝගික කාර්යයන්
මගේ Track වර්ගයේ කේතය පිටපත් කර
/core/Track.php ගොනුවේ තබන්න.