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 originalfunction __autoload($clase)
{
include ($clase.'.php');
}
//una forma más elaborada sería nombrar la clase Archivo_Clase
//y en el autoload
function __autoload($clase)
{
require_once $ruta . '.php';
}
namespace de php se utiliza así.
Pero todavía no entiendo cómo interactuan estas dos herramientas.