/** * Сохраняем таблицу маршрутизации в реестре FrameworkRegistry (при первом обращении к RouteMapLoader). * Затем вызывается соответствующее текущим параметрам Request действие контролера. */ public static function main() { try { // считываем таблицу маршрутизации (при первом обращении) // и сохраняем ее в FrameworkRegistry: RouteMapLoader::getInstance()->initialize(); // создаем в соотвествии с заданным маршрутом(Request) экземпляр контролера, // затем посредством метода run вызывается соотвующее действие: while ($controller = FrameworkRegistry::getRouting()->getController(Request::getInstance())) { $controller->run(); } } catch (FrameworkException $frmExcep) { $frmExcep->redirectToExcepPage(); } }
/** * Вносим в request параметры для действия контролера маршрута, на который выполняется редирект. * * @param array $arrParams параметры из нового маршрута */ public function addParametersForRedirectRoute($arrParams) { if (!is_array($arrParams)) { throw new FrmworkExcep\InvalidArgumentException(self::$msgForInvalidArgExcp, Routing::class, __METHOD__, '$arrParams', 'array'); } if (!$this->request) { $this->request = Request::getInstance(); } $this->request->removeAllParameters(); // удаляем из request текущие параметры $this->removeAllParametersForAction(); // обнуляем $this->paramsAction foreach ($arrParams as $key => $value) { $this->request->addParameter($key, $value); //вносим в request параметры } FrameworkRegistry::setRouting($this); }