Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2013, 21:29
danielc1657
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Pasar el nombre de la clase y metodo dinamicamente al front controller

Buenas noches. quisiera saber si es correcto y seguro pasar el nombre de la clase y del metodo que quiero invocar al front controller via ajax, algo como esto:
Código HTML:
$.ajax({
   type : "POST",
   url : "controllers/FrontController.php",
   dataType: "json",
   data: {
        class : "AnyClass",
        funct : "AnyFunction",
        param : ParamObject,
    }
}).done(function(res){
    ok();
}).fail(function(jqXHR, textStatus){
    ohoh();
});
Y en el frontcontroller.php con el método __autoload($className) instanciar la clase y luego llamar al metodo que se pasa como parámetro

Código HTML:
$class = $_POST['class'];
$funct = $_POST['funct'];
$param = $_POST['param'];

$clInstance = _autoload($class);
if ($clInstance) {
   foreach ($param as $key => $value)
        $clInstance->_set($key, $value);

    $res = $clInstance->$funct();
    echo json_encode($res);
} else {
    echo 'error';
}

function __autoload($class) {
    $fname = '../Models/' . $class . '.php';
    if (file_exists($fname)) {
        require_once $fname;
        return new $class();
    } else {
       return false;
    }
}