Hola
pateketrueke, cuanto tiempo! :D
La clase no está instanciada dentro del namespace, evidentemente sí está declarada/escrita, esta es la clase original, pero no va a servir porque he seguido trabajando para solucionarlo y ahora el problema que tengo es otro.
Código PHP:
Ver originalnamespace controller;
class Front{
private $class;
private $module;
private $method;
private $args;
public function __construct($module='Home', $method, $args) {
$this->module = $module;
$this->method = $method;
$this->args = $args;
}
public function __toString(){
//no incluí metodo ni argumentos porque es sólo de prueba a ver si la llamada funciona
new \module\$this->module();
}
}
El estado actual de la clase es este
Código PHP:
Ver originalnamespace controller;
class Front{
public function invoke($args) {
$class = '\module\\'.$args['module']()->$args['method']($args['args']);
return new $class;
}
}
Ahora el problema es que no reconoce el metodo cómo el nombre de una clase, sino cómo una función en el namespace, la cual no está. Me muestra este error
Cita: Fatal error: Call to undefined function Home() in /srv/www/htdocs/blog/controller/front.php on line 27
La línea 27 es la línea del return.
Para complementar los archivos, el estado actual del return del index es este
Código PHP:
Ver originalecho (new \controller\Front())->invoke($args);
Y el archivo del modulo Home
Código PHP:
Ver originalnamespace module;
class Home{
public function home() {
return "hola";
}
}
Si quieres todos los archivos tan sólo dilo y lo subo en un segundo y te pongo el enlace.
Una vez resuelto esto iré a resolver lo del otro post: por qué me dice que obtengo un object en vez de un string, pero creo que es por eso que me dijiste, que estoy instanciando directamente el constructor, error terrible que no tuve en cuenta jeje.
Muchas gracias por tu ayuda.