Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

¿ __Autoload de clases usando POO ?

Estas en el tema de ¿ __Autoload de clases usando POO ? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Supongamos, dos clases, A.php y B.php en el mismo directorio: Código PHP: <?php class  A  {          public function  __Construct () {         echo  "A: Ok<BR />" ;     }      ...
  #1 (permalink)  
Antiguo 29/07/2008, 03:50
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
¿ __Autoload de clases usando POO ?

Supongamos, dos clases, A.php y B.php en el mismo directorio:

Código PHP:
<?php

class {
    
    public function 
__Construct() {
        echo 
"A: Ok<BR />";
    }
    
}

?>
Código PHP:
<?php

    
class extends {
        
        public function 
__Construct() {
            
parent::__Construct();
            echo 
"B: Ok";
        }
        
    }
    
    function 
__autoload($class) {
        require_once 
$class ".php";
    }
    
    new 
B;

?>
Usando __Autoload() desde fuera de las clases, estructuralmente, es capaz de cargar la clase concreta A (A.php).

Pero este uso de la autocarga es estructurado... ¿ No puedo hacerlo desde una clase ? Lo probé :P y no funciona...

Gracias !!

Última edición por Semz; 29/07/2008 a las 03:56 Razón: Sintaxis
  #2 (permalink)  
Antiguo 29/07/2008, 04:47
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿ __Autoload de clases usando POO ?

Crea una clase de configuracion o de utilidad de la aplicación, ponle ahí un método de carga y luego regístralo con spl_autoload_register. En el manual sale un ejemplo. (Eso sí, según dice el ejemplo, la posibilidad de registrar un método de una clase sólo está disponible "As of PHP 5.3.0". Si no usas 5.3.x o posterior, tendrás que hacerlo como hasta ahora)

(Quizá también te guste este comentario)
  #3 (permalink)  
Antiguo 29/07/2008, 08:28
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Respuesta: ¿ __Autoload de clases usando POO ?

Código PHP:
<?php

    
class extends {
        
        public function 
__Construct() {
            
parent::__Construct();
            echo 
"B: Ok";
            
            
spl_autoload_register(array('b','bf1'));    
        }    
        
        public function 
bf1($class) {
            require_once 
$class '.php';
        }
        
    }
    
    
/*
    function __autoload($class) {
        require_once $class . ".php";
    }
    */
    
    
$b = new B();

?>
Entonces, ¿ Sería así ? Una vez se intente cargar A debería cargarla si es correcto...

Por desgracia, tengo la versión 5.2.5 y no puedo probarlo y para poder probarla necesitaría hacer uso de repositorios svn, no? y... no estoy al día en eso la verdá :S

Pero en teoría, sería así ?
  #4 (permalink)  
Antiguo 29/07/2008, 08:58
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿ __Autoload de clases usando POO ?

No, no sería así.

La llamada a spl_autoload_register tiene que estar en el contexto raíz de todos modos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:46.