⊗ppMVDFmRr 25 of 35 menu

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 файлига жойланг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш