El cargador automático PHP es sólo un mecanismo para incluyen un archivo cuando una clase se construye.
Si coloca todas sus clases en 1 archivo, no necesita un autocargador. Por supuesto, cuando OO programación que dar a cada clase su propio archivo, y ahí es donde el cargador automático viene en
Algunos ejemplos:.
class AutoLoader
{
public function __construct()
{
spl_autoload_register(array($this, 'ClassLoader'));
}
public function ClassLoader($class)
{
if(class_exists($class, false))
return true;
if(is_readable('path_to_my_classes/' . $class . '.php'))
include_once 'path_to_my_classes/' . $class . '.php'
}
}
$autoloader = new AutoLoader();
Lo que sucede es que cuando se crea la clase cargador automático, la clase El método Classloader está registrado como autocargador.
Cuando se crea una nueva clase, el método Classloader primero comprueba si el archivo de la clase ya está cargado. Si no, la clase se antepone con una ruta y se extiende con una extensión. Si el archivo es legible, está incluido.
Por supuesto, puede hacer esto muy sofisticado. Veamos un ejemplo con espacios de nombres y un mapeador. Supongamos que estamos en la clase cargador automático:
private $mapper array('Foo' => 'path_to_foo_files/', 'Bar' => 'path_to_bar_files/');
public function ClassLoader($class)
{
if(class_exists($class, false))
return true;
// break into single namespace and class name
$classparts = explode('\\', $class);
$path = $this->mapper[$classparts[0]];
if(is_readable($path . $classparts[1] . '.php'))
include_once $path . $classparts[1] . '.php'
}
En este caso, el nombre de clase es splittet en una parte del espacio de nombres y unas partes classname. La parte de espacio de nombres se busca en una matriz mapeador, y esa ruta se utiliza como una ruta de inclusión para el archivo php.
Estos son solo ejemplos para demostrar lo que se puede hacer con un autocargador. Para la producción, se necesita más trabajo por hacer, por ejemplo, comprobación de errores.
parece que el enlace en su pregunta es suficiente para saber –
"¿El autocargador de la clase php abre un archivo y busca el nombre de la clase?" - Busca todas las clases en un archivo. – zerkms
, pero ¿dónde puedo saber cómo se implementó, desde cero todo el proceso de autocargador esto es lo que es interesante para mí como la forma en que se escribió el código fuente de PHP por primera vez – meWantToLearn