Foros del Web » Programando para Internet » PHP »

spl_autoload

Estas en el tema de spl_autoload en el foro de PHP en Foros del Web. Quisiera discutir algo con la comunidad que me parece patético. Los desarrolladores que estén trabajando con namespaces para realizar carga de clases en tiempo de ...
  #1 (permalink)  
Antiguo 23/03/2010, 13:55
 
Fecha de Ingreso: septiembre-2005
Mensajes: 34
Antigüedad: 18 años, 7 meses
Puntos: 1
spl_autoload

Quisiera discutir algo con la comunidad que me parece patético.

Los desarrolladores que estén trabajando con namespaces para realizar carga de clases en tiempo de ejecución conocerán las funciones spl_autoload que nos permiten realizar esta tarea.
Al intentar cargar una clase que no se encuentra incluida en nuestro script, automaticamente se intenta ejecutar una funcion definida por el usuario llamada __autoload() que cague el fichero contenedor de la clase. Existe además la posibilidad de utilizar un spl_autoload para realizar esta tarea.

El problema se presenta cuando utilizamos rutas de directorio con mayusculas y minusculas en un filesystem case sensitive, ya que la funcion spl_autoload() automaticamente convierte las rutas a lowercase.
Esto nos obliga a tener que programar una funcion __autoload() si queremos utilizar rutas case sensitive, por lo que el poder de spl_autoload está condicionado solo a las personas que corren PHP sobre un sistema case insensitive... una locura.

En el bug #48129 (http://bugs.php.net/bug.php?id=48129&edit=2) parecería que a las personas de PHP solo les importa la compatibilidad. Aunque sinceramente, esto puede solucionarse con una busqueda doble en case sensitive e insensitive al mismo tiempo.

Esperemos que para las proximas versiones esto esté solucionado, sino la programación de librerias en PHP se va a dificultar mucho.
  #2 (permalink)  
Antiguo 23/03/2010, 14:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: spl_autoload

Por eso es mejor que tu definas tu propia función de autoload llamando a spl_autoload_register() ya que como comentan en el bug, no lo van a arreglar, es mejor si defines tu propia función de autoload.

Saludos.
  #3 (permalink)  
Antiguo 23/03/2010, 14:28
 
Fecha de Ingreso: septiembre-2005
Mensajes: 34
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: spl_autoload

Y si, esa es la solución, pero una funcion dentro del script siempre va a ser mucho más lenta que una implementación en C... habrá que conformarse nomás.
  #4 (permalink)  
Antiguo 23/03/2010, 14:50
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 8 meses
Puntos: 12
Respuesta: spl_autoload

Lol, no he entendido nada en absoluto. Hoy me voy deprimido a dormir, no tengo nivel para estar aqui
__________________
Juego de navegador online
  #5 (permalink)  
Antiguo 23/03/2010, 15:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: spl_autoload

Sí es más lenta pero como comentan ahí si no lo van a arreglar no queda mucho que hacer más como dices usar __autoload o spl_autoload_register, en fin alternativas hay y no creo que esto "frene" o dificulte, si ves Zend Framework que es un framework bastante extenso hace uso de esto y no por un detalle así se ha frenado el desarrollo.

Saludos.

Etiquetas: Ninguno
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 03:07.