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);
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.");
}
}
}
Código PHP:
namespace numero;
class uno
{
function __construct() {
print "Imprimiento información en el constructor \n";
}
}
Gracias
Oskar