Foros del Web » Programando para Internet » PHP »

Funciones innecesarias

Estas en el tema de Funciones innecesarias en el foro de PHP en Foros del Web. Para gestionar los contenidos de una página tengo este código; @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver original $seccion = $_GET [ 'seccion' ] ; // la ...
  #1 (permalink)  
Antiguo 17/01/2009, 15:31
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 16 años, 11 meses
Puntos: 3
Funciones innecesarias

Para gestionar los contenidos de una página tengo este código;

Código php:
Ver original
  1. $seccion = $_GET['seccion']; // la sección le llega por url; [url]www.dominio.com?seccion=inicio[/url]
  2.         if(empty($seccion)){ //Si $seccion llega vacio presenta la portada.
  3.             include("inicio.php");
  4.         }else{// Si $seccion no esta vacia y existe un domuneto con el nombre que llega por $seccion...
  5.             if(file_exists($seccion.".php")){
  6.                 include ($seccion.".php");
  7.             }elseif (file_exists($seccion.".html")){
  8.                 include ($seccion.".html");
  9.             }else{ // Si no existe ningún documento con ese nombre...
  10.             echo 'La página solicitada no existe';
  11.             }
  12.         }

Alguien me dijo que lo metiera en una función pero esto no parece muy correcto así que... ¿como hago para llamarlo desde index.php sin meterlo en index.php ¿Hago otro include? ¿Hay alguna otra opción? ¿Hago lo mismo con el siguiente código?

Código php:
Ver original
  1. mysql_connect("localhost","usuario","pass"); //Conexion con la db
  2. mysql_select_db("database") or die('Cannot select database'); //selección de la base de datos

Por otro lado en el código tengo repartido los típicos mensajes de "Login Incorrecto", "Se ha identificado correctamente", "Se ha registrado correctamente", etc. Y he pensado que quizás podría hacer una función en la que le pasara un número de mensaje y me devolviera el mensaje. Aunque la verdad es que estos mensajes son solamente utilizados una vez, no se repiten, por lo que la unica utilidad que tendría hacer esto seria tener todos los mensajes juntos, localizados en un mismo sitio, por si hubiera que hacer algún tipo de cambio. Tambien en dicha función se les aplicaría etiquetas css quedando algo así; '<p class="sysmes">'.$Mensaje($num).'</p>'
¿Que opinais? ¿Vale la pena o es complicarse demasiado?
  #2 (permalink)  
Antiguo 17/01/2009, 16:54
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Funciones innecesarias

Vale la pena (hablo de lo último). Tendrás un código más ordenado así. Pero de lo primero no entendí ni A.

  #3 (permalink)  
Antiguo 17/01/2009, 18:00
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Funciones innecesarias

Cita:
Iniciado por okram Ver Mensaje
Vale la pena (hablo de lo último). Tendrás un código más ordenado así. Pero de lo primero no entendí ni A.

XD A ver... esos dos codigos que puse arriba los uso con funciones pero no es la manera correcta de usar una función... la pregunta es... si no los llamo con una función, por ejemplo el primero desde index.php, como puedo llamarlos? ¿Uso otro include? ¿O existe alguna otra forma?
Me acuerdo de las antiguas subrutinas en basic como los GO SUB que volvian con el RETURN XD
  #4 (permalink)  
Antiguo 17/01/2009, 20:46
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Funciones innecesarias

El primero de tus códigos indica que estás trabajando una web modular. En ese caso hay un index.php que procesa todos los requests, por lo que el código para determinar la sección sólo debe existir allí y en ningun otro script. Por lo tanto, no veo cuál es el problema al ponerlo directamente en el index.php.

Sobre el segundo, es una conexión a la base de datos. Igual. EN el script debes conectarte una sola vez (a menos que tengas varias bases de datos [ojo, no hablo de tablas]). Por lo tanto, tampoco hay razón para tenerlo en una función extra. Lo que sí es más lógico es que ese trozo de conexión esté en un archivo aparte llamado con include_once o require_once, pero sólo por mera organización.

Un código debe ir directamente en el script pedido cuando sólo ese script lo necesita. Debe ir en una función cuando estamos hablando de una rutina que, aunque con pequeñas variaciones dependiendo de los parámetros, se debe ejecutar igual en todos los scripts. Para ello estará en un script php extra, digamos funciones.php, incluído en todos los scripts "de primer nivel, los que son directamente pedidos en el navegador). Y hay otros scripts que forman parte del proceso general de la página, sin ser necesriamente una rutina fija, como las conexiones a las bases de datos o las clases. En ese caso es mejor tener cada clase en su archivo. Cada proceso en un archivo que lo identifique, como db.php, session.php, auth.php, etc.

Espero hayas entendido. Obviamente esto no es un estándar, es simplemente armar y organizar todo un sistema de manera que sea fácil su interpretación y edición.

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