Foros del Web » Programando para Internet » PHP »

Buena costumbre 'include_once'

Estas en el tema de Buena costumbre 'include_once' en el foro de PHP en Foros del Web. Ultimamente he estado incursionando en php, y quisiera saber cual es el buen habito respecto al lugar en la página donde llamo la función "include" ...
  #1 (permalink)  
Antiguo 22/08/2008, 13:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 0
Buena costumbre 'include_once'

Ultimamente he estado incursionando en php, y quisiera saber cual es el buen habito respecto al lugar en la página donde llamo la función "include" o "include_once".

Si la página es simple me pareceria más prolijo llamarla en las primeras lineas de codigo. Pero que pasa si tengo algo así:

Código PHP:
if($_POST['buscar']){
        
//Desarrollo de un script, para el cual tengo que usar función "include"

}else{
        
//Desarrollo de otro escript el cual no tengo que usarla función "include"
       
        //Muchas lineas de codigo 

        //Devuelta el mismo problema
       
        
if($_POST['resultado']){
                    
//Desarrollo de un script, para el cual tengo que usar función "include"

        
}else{
                    
//Desarrollo de otro escript el cual no tengo que usarla función "include"


Dode deberia llamar la función??
- Arriba de todo antes del if
- Despues de cada if que la necesite, osea la llamo dos veces

Me gustaria resolver esto porque hay veces q tengo llamadas a esta función dispersas por todo un documento cuando podría ser mas prolijo que esten todas juntas arribas, auque quizas la ejecución del script no la utilice.

Disculpen si es estupida la pregunta.

Saludos, el foro esta genial
  #2 (permalink)  
Antiguo 22/08/2008, 14:02
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Buena costumbre 'include_once'

En ese caso deberías llamarla dos veces, creo yo.

Saludos.
  #3 (permalink)  
Antiguo 22/08/2008, 14:19
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Buena costumbre 'include_once'

Depende de lo que quieras. El include ya sabes que no necesariamente incluye únicamente funciones y clases, también puede ejecutar código automáticamente en el momento de incluirlo. Si ese código lo hay y necesitas llamarlo en esas ramas cada vez porque las anteriores no te sirven, obviamente debes hacer un include();
Sin embargo si es sólo clases o funciones, con una vez que se incluyan basta. La replicación de datos en este caso es absurda.

Además, en el primer caso sería mejor intentar incluir en una función esas partes del script que deben ejecutarse sí o sí, así sólo la llamas y puedes ahorrarte hacer includes cada vez. Puede ser que eso no te vaya bien, entonces intenta separarlo en otro fichero que vayas incluyendo replicando sólo los datos necesarios.

En resumen: el include o require sólo cuando no queda más remedio que replicar ciertos datos.
__________________
Un Lannister siempre cumple sus promesas
  #4 (permalink)  
Antiguo 22/08/2008, 14:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Buena costumbre 'include_once'

Gracias a los dos, veo que no hay fuertes convenciones respecto al tema
  #5 (permalink)  
Antiguo 24/08/2008, 13:04
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Buena costumbre 'include_once'

coincido casi 100% con Mort20, en mi opinión nunca deberías incluir un archivo más de una vez por el solo hecho de que puedas necesitar el código en varias ocasiones. Para eso están las funciones.

Una vez que tenés una función en el archivo incluido, que sabés que se puede llegar a ejecutar más de una vez, creo que (siguiendo la estructura que creaste antes) podrías hacer esto:

Código PHP:
if($_POST['buscar'])
{
    require_once(
'archivo.php');
    
funcion_definida_dentro_del_archivo();
}
else
{
    if(
$_POST['resultado'])
    {
        require_once(
'archivo.php');
        
funcion_definida_dentro_del_archivo();
    }
    else
    {
    }

require_once solamente incluirá el archivo 1 vez, aunque se lo llame varias veces.
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 21:16.