Как изменить/добавить роутеры (router) в codeigniter с помощью хука?

Стоит вопрос в смене роутеров из конфига codeigniter.

В config/routes.php существуют некоторые правила роутинга, например:
$route['default_controller'] = 'pages/page';
$route['404_override'] = '';

$route['manager'] = 'manager';

Нужно сделать следующее:
Если существует определенный файл, то изменить эти роуты на
...
$route['(ru|en|fr)/manager'] = 'manager';
...

Предполагаю что это нужно сделать через хуки, но не нашел такой функции во фреймворке чтобы менять роуты.
  • Вопрос задан
  • 3350 просмотров
Пригласить эксперта
Ответы на вопрос 2
Я конечно до конца условия задачи не знаю, но что мешает делать проверку на существование определенного файла прямо в routes.php? Там же, в зависимости от результата условия, применять нужный $route[]
Ответ написан
@BugIg
Ну для начала заглянуть вот сюда.

code-igniter.ru/user_guide/general/hooks.html

После чего сделать следующие настройки у себя.

$hook['pre_system'] = array(
                                'class'    => 'MyClass',
                                'function' => 'Myfunction',
                                'filename' => 'Myclass.php',
                                'filepath' => 'hooks',
                                'params'   => array()
                                );


pre_system - будет обрабатываться до загрузки роуторов что даст возможность делать что угодно вам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы