Buenas tardes.
Estoy pegándome con un patrón de tipo Factory para poder instanciar clases en función de variables que se reciban, pero llevo un par de días con la parte del autolader dentro de la clase factory, pero no hay manera de que me cargue el archivo y la clase.
Tengo el archivo index.php con este código
Código PHP:
ini_set("display_errors", 1);
$clase = 'uno';
var_dump( include_once 'src/factory.class.inc') ;
echo "<br>";
use ProductFactoryProductFactory as Factory;
try{
$objeto = Factory::build($clase);
}
catch(Exception $e) {
echo 'Message: ' .$e->getMessage();
}
// var_dump($objeto);
las clases las tengo dentro del directorio src
factory.class.inc tiene este código
Código PHP:
namespace ProductFactory;
class ProductFactory
{
public static function build($clase) {
//validar si carga el archivo
// Or, using an anonymous function as of PHP 5.3.0
spl_autoload_register(function ($clase) {
include $clase . '.class.inc';
});
// $objeto = $clase . 'class.inc';
if (class_exists($clase)) {
return new $clase();
}
else {
throw new Exception("Invalid product type given.");
}
}
}
Y uno.class.inc tiene este código
Código PHP:
namespace numero;
class uno
{
function __construct() {
print "Imprimiento información en el constructor \n";
}
}
Alguna sugerencia o ayuda en la carga de la clase definida en el archivo uno.class.inc dentro de la factoría?
Gracias
Oskar