Ver Mensaje Individual
  #21 (permalink)  
Antiguo 04/11/2013, 10:30
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: ¿__autoload dentro o fuera de la clase?

Creo que voy entendiendo todo esto. Pero tengo una duda

¿Cómo interactuan __autoload() y namespace de manera que cumpla con con PSR-0?

Lo que entendí hasta el momento fue lo siguiente.

En PHP hay varias maneras de incluir un archivo en otro (include, include_once, require y require_once).

A la hora de escribir código bajo el paradigma POO los programadores nos encontramos con la problemática de que escribimos una clase por cada archivo y a la hora de hacer que interactuen entre ellas debemos escribir una larga lista de inclusiones dentro de unos archivos u otros según necesitemos más o menos clases.

Por otro lado, a mayor número de clases, mayor es la posibilidad de que dos clases o métodos se llamen iguales. Escribir un largo nombre por cada archivo, clase y método no es factible y es semánticamente horrible.

Para solucionar esto hay dos herramientas que interactuan entre ellas, aportando una manera sencilla y eficaz de poder incluir unos archivos en otros y poder utilizar unas clases u otras.

Estas herramientas son

-La autocarga de clases, __autoload().

-Los namespaces.

autoload de PHP a partir de la versión 5.3 funciona tal que así

Código PHP:
Ver original
  1. function __autoload($clase)
  2. {
  3. include ($clase.'.php');
  4. }
  5.  
  6. //una forma más elaborada sería nombrar la clase Archivo_Clase
  7. //y en el autoload
  8.  
  9. function __autoload($clase)
  10. {
  11. $ruta = str_replace('_', '/', $clase);  
  12. require_once  $ruta . '.php';  
  13. }

namespace de php se utiliza así.


Pero todavía no entiendo cómo interactuan estas dos herramientas.
__________________
Ayúdame a hacerlo por mi mismo.