Foros del Web » Programando para Internet » PHP »

intentar evitar eval()

Estas en el tema de intentar evitar eval() en el foro de PHP en Foros del Web. He leido en varios sitios que eval() es "bastante lento" en ejecutarse y que es mejor evitarlo siempre que se pueda. Yo hay un eval() ...
  #1 (permalink)  
Antiguo 20/03/2008, 14:28
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
intentar evitar eval()

He leido en varios sitios que eval() es "bastante lento" en ejecutarse y que es mejor evitarlo siempre que se pueda. Yo hay un eval() que por mas que lo intento no se me ocurre como poder quitarlo. Es el siguiente:

eval('$laInstanciaDeLaClase = ' . $nombreDeLaClase . '::getInstancia();');

Explico las variables por si no se entienden:

$laInstanciaDeLaClase= sera la unica instancia de la clase (patron singleton)
$nombreDeLaClase= esta variable tiene el nombre de la clase a la que quiero llamar
getInstancia()= es el metodo que llamo para lograr la unica instancia posible de esa clase
  #2 (permalink)  
Antiguo 20/03/2008, 15:17
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Re: intentar evitar eval()

Pues en esos sitios dicen que en la medida de los posible hay que evitar usar el eval, no que nunca se use.
  #3 (permalink)  
Antiguo 22/03/2008, 14:52
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: intentar evitar eval()

ya pero bueno, si existe la posibilidad de cambiarlo por otra cosa mas eficiente o mas sencilla, lo cambiaria.

A alguien se le ocurre?

Un saludo
  #4 (permalink)  
Antiguo 22/03/2008, 15:36
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
Re: intentar evitar eval()

Hola Blade_Storm,

Si tienes PHP 5.3, podrás simplemente hacer eso que propones:
Código PHP:
$laInstanciaDeLaClase $nombreDeLaClase::getInstancia(); 
Pero si no tienes, lo que mas te conviene es usar el patrón Factory para instanciar tus clases.

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 20:20.