Foros del Web » Programando para Internet » PHP »

simil __autoload pero para funciones (ayuda)

Estas en el tema de simil __autoload pero para funciones (ayuda) en el foro de PHP en Foros del Web. Bueno, llegó el momento... me cansé de hacer include esto, include lo otro o sino incluir tooodoo mi directorio de funciones en cada script que ...
  #1 (permalink)  
Antiguo 02/09/2007, 22:05
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 21 años
Puntos: 2
simil __autoload pero para funciones (ayuda)

Bueno, llegó el momento...

me cansé de hacer include esto, include lo otro o sino incluir tooodoo mi directorio de funciones en cada script que genero...

hay alguna en PHP5 de que si una función no exista se incluya automáticamente su código cual lo hace el __autoload con las clases ?

se me ocurre algo como esto:
Código PHP:
<?

llama_funcion
($funcion)
{
    require(
'ruta/de/funciones/prefijo.'.$funcion.'.php');
}

?>
y que sea llamado cada vez que usamos una función que genera un error del tipo "Call to undefined function" para que haga el include y pueda seguir la ejecución del script

bueno, espero su respuesta... gracias
  #2 (permalink)  
Antiguo 02/09/2007, 22:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: simil __autoload pero para funciones (ayuda)

No creo que puedas hacer eso que requieres, no existe autoload para funciones, esta diseñado exclusivamente para clases.

Lo mas que podrias hacer es incluirlas tu mismo, o pasarlas a un objeto estatico, y de ahi si cargarlas, por decir si tienes una funcion:
Código PHP:
function algo() {} 
Pasarlas a un objeto estatico:
Código PHP:
class objeto {
        public static function 
algo() {}

Entonces en ese caso si podrias auto-incluir la clase y llamar a tus funciones asi: objeto::algo();

Saludos.
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 14:42.