get_declared_classes и тестирование производительности в сравнении с альтернативами для MVC-URL для сопоставления файлов - PullRequest
0 голосов
/ 16 декабря 2011

Рассматривая различные фреймворки, механизмы маршрутизации, которые у них есть, и различные альтернативы, используемые для ускорения их работы, например, с 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, поэтому я должен указать, что это создаст среду, в которой это должно сидеть в контексте.

...