Սեփական MVC ֆրեյմվորկում ռուտերի մշակում
Այժմ ձեզ անհրաժեշտ է մշակել ռուտեր: Այն ներկայացնում է դաս, որն ընդունում է ռուտերի զանգված, վերցնում է հարցված URL-ը, և որոշում, թե որ ռուտերն է համապատասխանում tվերոնշյալ url-ին: Համապատասխան ռուտը գտնելուց հետո մեր դասը պետք է ստանա URL-ի այն մասերը, որոնք համապատասխանում են ռուտի պարամետրերին:
Թող մեր ռուտերը արդյունքում վերադարձնի
Track դասի օբյեկտ, որը պարունակում է այն
կոնտրոլերի անունը, որն պետք է կանչվի
tվերոնշյալ հարցման համար, գործողության անունը և պարամետրերը 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]
?>
Այս դասի նպատակն է գրել Router դասը,
որը վերադարձնում է Track դասի օբյեկտ:
Մնացածը մեզ առայժմ չի concerneում: Եկեք սկսենք
գրել այս դասը:
Գործնական առաջադրանքներ
Պատճենեք իմ Track դասի կոդը
և տեղադրեք այն ֆայլում
/core/Track.php: