Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2015, 14:40
oskar_calvo
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
[POO] Autoloader en una clase tipo factoría

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

Última edición por oskar_calvo; 21/03/2015 a las 14:50