Foros del Web » Programando para Internet » PHP »

¿Dónde se declara spl_autoload_register?

Estas en el tema de ¿Dónde se declara spl_autoload_register? en el foro de PHP en Foros del Web. Pido disculpas anticipadas, porque seguro que lo que voy a preguntar es una burrada, pero es que llevo todo el día intentando entender cómo funciona ...
  #1 (permalink)  
Antiguo 30/05/2012, 14:07
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
¿Dónde se declara spl_autoload_register?

Pido disculpas anticipadas, porque seguro que lo que voy a preguntar es una burrada, pero es que llevo todo el día intentando entender cómo funciona la función spl_autoload_register.

Copio y pego de otro sitio la implementación que más me ha convencido:

Código PHP:
Ver original
  1. <?php
  2.     /*** nullify any existing autoloads ***/
  3.     spl_autoload_register(null, false);
  4.  
  5.     /*** specify extensions that may be loaded ***/
  6.     spl_autoload_extensions('.php, .class.php');
  7.  
  8.     /*** class Loader ***/
  9.     function classLoader($class)
  10.     {
  11.         $filename = strtolower($class) . '.class.php';
  12.         $file ='classes/' . $filename;
  13.         if (!file_exists($file))
  14.         {
  15.             return false;
  16.         }
  17.         include $file;
  18.     }
  19.  
  20.     /*** register the loader functions ***/
  21.     spl_autoload_register('classLoader');
  22. ?>

Vale, teóricamente si respeto esa estructura a la hora de nombrar y ubicar las clases que cree, me puedo ahorrar los includes y demás. Hasta ahí creo que lo he pillado. Pero -y aquí viene la pregunta tonta- la implementación que he pegado aquí arriba, ¿dónde la he de poner? ¿En cada script?¿En el index o algún sitio donde sí o sí tenga que cargarse? ¿Da igual?

Lo dicho, seguro que debe ser la pregunta más tonta del día, pero es que no he sabido encontrar la respuesta en ningún lado.

Gracias
  #2 (permalink)  
Antiguo 30/05/2012, 14:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ¿Dónde se declara spl_autoload_register?

Idealmente lo tienes que poner en un script que incluyas en toda tu aplicación, por ejemplo si usas MVC, lo pondrías en tu FrontController, o si no donde incluyas la configuración.

En el peor de los casos ponlo en un archivo y haz un require/include a ese archivo y ya después ya puedes usar el autoloader.

Saludos.
  #3 (permalink)  
Antiguo 30/05/2012, 14:20
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Dónde se declara spl_autoload_register?

Mil gracias.
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 15:20.