В настоящее время я ищу решение удалить «Страницы» из URL-адреса, но не затрудняет добавление контроллера.Конфигурация маршрутизатора CakePHP Удаление страниц в URL-адрес
Я посмотрел вокруг и искал на Google для решения, но самое лучшее решение, которое они могли бы дать было это:
Router::Connect('/*', array('controller' => 'pages', 'action' => 'display'));
Но проблема с этим решением является то, что каждый раз, когда я хочу добавить контроллер мне нужно добавить следующие строки носком мой файл конфигурации/routers.php
Router::Connect('/Users/:action/, array('controller' => 'Users');
Router::Connect('/users/:action/, array('controller' => 'Users');
Причина, по которой я добавил эти две строки, заключается в том, что я не хочу, чтобы URL-адрес был чувствительным к регистру.
Я также знаю, что не так часто, как только сайт «ЗАВЕРШЕН», что контроллеры меняются.
Так что мое решение было следующее:
/*
* Get URL
* Seperate in array
* Remove empty elements
*/
$url = array_filter(explode("/", Router::url()));
/*
* Get Controllers list
*/
$Controllers = App::objects('controller');
$CleanControllers = array();
/*
* Remove string 'Controller' from element
* lower string
*/
foreach($Controllers as $Controller) {
$CleanControllers[] = strtolower(str_replace('Controller', '', $Controller));
}
/*
* Check if first element, from URL, is NOT a controllers array
*/
if(!in_array(strtolower(reset($url)), $CleanControllers)) {
/*
* Forward to "Pages" controller
*/
Router::connect('/', array('controller' => 'Pages', 'action' => 'display', 'home'));
Router::connect('/*', array('controller' => 'Pages', 'action' => 'display'));
}
/*
* Check if first element, from URL, is NOT a controllers array
*/
CakePlugin::routes();
require CAKE . 'Config' . DS . 'routes.php';
Так мой вопрос это решение производительность УБИЙЦА? Если да, то кто-нибудь знает лучшее решение?
Потому что, когда я смотрю расширенную маршрутизацию от CakePHP, мне кажется, что мне нужна SUPER Advanced routing ... Или я просто этого не понимаю.
CakePHP версии 2.1
Спасибо за вашу помощь!