Рассматривая различные фреймворки, механизмы маршрутизации, которые у них есть, и различные альтернативы, используемые для ускорения их работы, например, с codeigniter, wordpress, yii и symphony с альтернативными вариантами кэширования, как бы вы сделали подобное для подобных (возможно ли?) сравнение эффективности маршрутизации?
Например, в пользовательской среде я реализую нижеприведенное для динамической загрузки контроллера на основе настроенного внутреннего пути и / path / ($ controller_path) после очистки:
public function load_controller ($path='') {
if($path!='') {
config::set('controller',$path);
}
$controller = config::get('application').'controllers/'.config::get('controller').'.php';
if(file_exists($controller)) {
include($controller);
$clsController = end(get_declared_classes());
$instance = new $clsController;
} else {
debug::log("class not found: $controller",debug::$severe);
output::default('404',$_SERVER['REQUEST_URI']);
}
}
При этом используется метод get_declared_classes (), он не имеет сопоставления операторов переключения или поиска слагов базы данных, но требует сопоставления 1: 1 с файлами контроллера.
Существуют ли какие-либо руководства / тесты производительности по различным альтернативам маршрутизации, которые могут указывать на передовой опыт, и есть ли присущие выше проблемы с вышеупомянутой альтернативой и каков будет лучший или более эффективный способ маршрутизации неизвестного пути к контроллеру?
Большое спасибо за ваши мысли.
ОБНОВЛЕНИЕ: в частности, среда, в которой я работаю, представляет собой конфигурацию linux / apache / php / mysql, и я использую mod_rewrite, поэтому я должен указать, что это создаст среду, в которой это должно сидеть в контексте.