Cita:
Iniciado por guardarmicorreo
Recientemente he aprendido a utilizar esto para hacer lo que yo llamo (no sé si tiene un nombre específico) una llamada ciega a clases.
Lo aprendí cuando me enseñaron a crear un front controller.
Por ejemplo.
Supongamos que queremos hacer un front-controller donde el usuario, al introducir un parámetro en la barra de direcciones instancie directamente a una clase.
Para esto debemos recoger ese parámetro, que es el nombre de una clase.
Y el código podría ser algo así
Código PHP:
Ver original$class=$_GET['class']
$obj=(new FrontController())->instance($class);
En el front-controller habría un código tal que así
Código PHP:
Ver originalclass FrontController{
function __construct(){
}
function instance($class){
include $class'.php';
//retorna la pagina principal
return (new $class())->view();
}
}
De manera que si el usuario introduce index.php?class=home imprimirá el home.
Evidentemente faltan detalles como los namespaces, autocarga de clases con spl_autoload_register, modificar el htaccess para que el usuario no tenga necesidad de indicar index.php y tampoco class= y que la url solo admita parámetros con "/", etc.
Pero en esencia esa es la idea, instanciar ciegamente clases.
realmente esta genial lo que haces, pero sigo preguntando esto
yo se que cuando hay una mayúscula al comienzo es una clase
y si en un método hay entre los paréntesis por así decir (Class $dato)
entiendo que el método puede llamar a una clase según yo.
es decir el código seria así
function prueba(Clase $dato){
$f=$dato;
}
esto lo usan mucho en java para programación objetos, pero no se como se usa esto, ni lo entiendo y es mas no se si se pueda en php.