Öz MVC çärimiziň üçin router-iň işlenip taýýarlanylmagy
Indi siz router işläp taýýarlamaly. Ol, massiw ýollary alyp, haýyş edilen URL-i alyp, we haýsy ýolunyň bu URL-e gabat gelýändigini kesgitleýän klasdyr. Gabat gelýän ýol tapylan soň, bizim klasymyz ýol parametrlerine gabat gelýän URL böleklerini alyp bilmelidir.
Bizim router-iň netijesi, Track klasynyň obýekti bolsun,
ony çagyrmaly kontrolleriň adyny, hereketiň adyny we URL-den
gelen parametrleri öz içine alýan.
Bizim Track klasymyz, diňe okalýan hökmünde elýeterli bolan,
controller, action we params aýratynlyklaryna eýe bolsun:
<?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;
}
}
?>
Mysal
Mysal üçin, salgydyr setirine /test/1/2/ girizildi diýeliň. Bizde bu salgydyr gabat gelýän ýol bar diýeliň:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Bu, kontrolleriň ady test,
hereketiň ady - index, we parametrleriň massiw
aşakdaky ýaly bolar diýän manyny berýär:
<?php
['var1' => 1, 'var2' => 2]
?>
Bu sapagyň maksady, Track klasynyň obýektini gaýtaryp
berýän Router klasyny ýazmakdyr.
Galan zatlar bizi häzirik wagtda degişli däl. Geliň bu klasy ýazmaga
başlalyň.
Amaly wezipeler
Meniň Track klasymyň kodyny göçürip alyň
we ony /core/Track.php faýlynda ýerleşdiriň.