/
ouke
/
amk
Обзор
Документация
Войти
/
ouke
/
amk
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
system/engine/router.php
81 строка
1 KB
Руслан
first_commit
09 июл 2025, 07:27
09 июл 2025, 07:27
24f61ee
Код
Авторство
О чём код?
<?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Router class */ final class Router { private $registry; private $pre_action = array(); private $error; /** * Constructor * * @param object $route */ public function __construct($registry) { $this->registry = $registry; } /** * * * @param object $pre_action */ public function addPreAction(Action $pre_action) { $this->pre_action[] = $pre_action; } /** * * * @param object $action * @param object $error */ public function dispatch(Action $action, Action $error) { $this->error = $error; foreach ($this->pre_action as $pre_action) { $result = $this->execute($pre_action); if ($result instanceof Action) { $action = $result; break; } } while ($action instanceof Action) { $action = $this->execute($action); } } /** * * * @param object $action * @return object */ private function execute(Action $action) { $result = $action->execute($this->registry); if ($result instanceof Action) { return $result; } if ($result instanceof Exception) { $action = $this->error; $this->error = null; return $action; } } }