/**
  * Сохраняем таблицу маршрутизации в реестре 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();
     }
 }
Пример #2
0
 /**
  * Вносим в 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);
 }