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;
}
}