29 private static $_controller;
38 extract($route, EXTR_OVERWRITE);
40 if (!include_once
APP_PATH .
"controllers/$controller_path".
'_controller.php')
throw new KumbiaException(NULL,
'no_controller');
44 $cont = self::$_controller =
new $app_controller($module, $controller, $action, $parameters);
49 if($cont->k_callback(TRUE) === FALSE) {
55 if(!method_exists($cont, $cont->action_name)){
60 $reflectionMethod =
new ReflectionMethod($cont, $cont->action_name);
63 if($reflectionMethod->name ==
'k_callback' || $reflectionMethod->isConstructor()){
64 throw new KumbiaException(
'Esta intentando ejecutar un método reservado de KumbiaPHP');
68 if(!$reflectionMethod->isPublic()){
74 $num_params = count($cont->parameters);
75 if($cont->limit_params && ($num_params < $reflectionMethod->getNumberOfRequiredParameters() ||
76 $num_params > $reflectionMethod->getNumberOfParameters())){
77 throw new KumbiaException(
"Número de parámetros erróneo para ejecutar la acción \"{$cont->action_name}\" en el controlador \"$controller\"");
79 $reflectionMethod->invokeArgs($cont, $cont->parameters);
99 return self::$_controller;