__autoload
лучше использовать spl_autoload_register
.class_exists
в маршрутизаторе не нужно, этим пусть занимается автозагрузчик.method_exists
стоит проверить.public static function launch() {
if ($controller = self::getParam('controller')) {
self::$controller = $controller;
}
if ($action = self::getParam('action')) {
self::$action = $action;
}
$controllerName = strtolower(self::$controller).'Controller';
$controllerAction = 'execute'.ucfirst(strtolower(self::$action));
$controller = new $controllerName();
if (!method_exists($controller, $controllerAction)) {
throw new NotFoundException('Method \''.$controllerName.'::'.$controllerAction.'\' not found');
}
$controller->$controllerAction();
}
public static function getParam($param_name, $type = 'string') {
if (isset($_GET[$param_name])) {
if (!isset(self::$params[$param_name])) {
self::$params[$param_name] = self::clean($_GET[$param_name], $type);
}
return self::$params[$param_name];
}
return NULL;
}