Foros del Web » Programando para Internet » PHP »

Forma optima para crear funciones en php

Estas en el tema de Forma optima para crear funciones en php en el foro de PHP en Foros del Web. Saludos, Sucede, que estoy desarrollando un website y por mas que he investigado y creado indices y he tratado de modificar mi codigo, sigo teniendo ...
  #1 (permalink)  
Antiguo 28/09/2012, 23:42
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 11 meses
Puntos: 3
Forma optima para crear funciones en php

Saludos,
Sucede, que estoy desarrollando un website y por mas que he investigado y creado indices y he tratado de modificar mi codigo, sigo teniendo problemas de rendimiento, ya que estoy cargando mucho el servidor y los administradores me estan llamando a la atencion, y no quiero que me tumben la pagina.

En mis investigaciones he encontrado mucha informacion que me dice que puede ser problemas de la conexion, yo utilizo mucho este tipo de funciones.

Es optima esta forma?

Código PHP:
Ver original
  1. //funcion que muestra la modelo
  2.         function mostrar_modelo($id){
  3.                 $db = conectate();//me conecto al servidor y la bd
  4.  
  5.                     //saco el modelo
  6.                     $sql_modelo_vehiculo = $db->prepare("SELECT * FROM tmodelos WHERE id_modelo = ? ");
  7.                     $sql_modelo_vehiculo->execute(array($id));
  8.                    
  9.                     $rs_modelo_vehiculo = $sql_modelo_vehiculo->fetchAll();    
  10.                    
  11.                     foreach($rs_modelo_vehiculo as $modelo){
  12.                             return $modelo['descripcion_modelo'];
  13.                         }
  14.                
  15.             }

Creen que ese codigo se puede mejorar para que funcione mejor?
Creen que ahi es que puede estar mi problema?

Gracias
  #2 (permalink)  
Antiguo 29/09/2012, 00:31
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Forma optima para crear funciones en php

Las funciones no son el problema, el problema de consumo de recursos es la pésima optimización del código, sea o no función, por ejemplo, para que llamas todas las celdas de la tabla tmodelos si solo vas a retornar "descripcion_modelo", es tonto hacer eso, y mas aun hacer un loop para recorrer las demás celdas, mejor solo llama a la celda que necesitas y con fetchRow obtienes el resultado que quieres, aun así, la función que muestras no debería darte problemas, aun como la tienes ahorita, el consumo seria infimo, a menos que tengas miles de usuarios llamando a la función al mismo tiempo, lo mas seguro es que tu problema sea en general la forma en como estas programando y no solo una función...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 29/09/2012, 00:40
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Forma optima para crear funciones en php

Eso que dices esta muy bien, me gusta..
Lo unico que solo puse esa funcion, asi como esa hay mas.

Ahh otra cosa, esa funcion de modelo, solo tiene 2 campos.

verificare eso que me dices...

Si tienes alguna aclaracion, no dudes en plantearmelas, please...

Thanks
  #4 (permalink)  
Antiguo 29/09/2012, 00:45
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Forma optima para crear funciones en php

Con los ejemplos que das no hay forma como ayudarte, no dices el numero de usuarios que acceden al sitio al mismo tiempo ni muestras código completo, así es imposible, es estar adivinando que es lo que esta mal...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 29/09/2012, 01:18
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Forma optima para crear funciones en php

Bueno,
Cantidad de usuarios no se decirte, pero esperemos que sean muchos usuarios, mas de 100 simultaneos.

Otra cosa, el codigo no es que no quiera pasarlo, es que es casi imposible, son muuchas paginas, aqui te voy a pasar varias funciones, para que tengas un estimado de como lo estoy haciendo.

Código PHP:
Ver original
  1. //funcion que consulta todos los datos de un usuario
  2.     function consultar_datos_del_usuario($id){
  3.             global $db;// = conectate();//me conecto al servidor y la bd
  4.                
  5.                 $sql_us = $db->prepare("SELECT * FROM tusuarios WHERE usuario_id = ?");
  6.                 $sql_us->execute(array($id));
  7.                 $rs_us = $sql_us->fetchAll(PDO::FETCH_ASSOC);
  8.                
  9.                 foreach($rs_us as $us){
  10.                     return $us;
  11.                 }
  12.  
  13.            
  14.         }

Código PHP:
Ver original
  1. //funcion que selecciona los autos vendidos por un determinado usuario
  2.     function consultar_categorias_de_usuario(){
  3.             global $db;// = conectate();//me conecto al servidor y la bd
  4.                
  5.                 $sql_cate = $db->prepare("SELECT tipo_usuario_id, tipo_usuario_descripcion FROM tcategoria_usuario");
  6.                 $sql_cate->execute();
  7.                 $rs_cate = $sql_cate->fetchAll(PDO::FETCH_ASSOC);
  8.                
  9.                 return $rs_cate;
  10.  
  11.            
  12.         }

Realmente me gustaria saber, cuales faltas de optimizacion le ves a esas funciones
y otra cosa, si tienes algun tips para mejorar el rendimiento, es bienvenido.

Gracias por todo
  #6 (permalink)  
Antiguo 29/09/2012, 02:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Forma optima para crear funciones en php

Tal vez no sea el más ducho del foro, pero si yo revisase tu trabajo, tal vez te diría que intentases mantener el contacto con la BBDD durante menos tiempo, intento explicarme:

Por lo que me parece entender, estas constantemente conectado con la BBDD, haciendo consultas constamente. Tal vez, sería más optimo hacer una "gran consulta" y trabajar con los datos en la maquina cliente y no mantener esa variable ($db global) corriendo constantemente para cada usuario.

Otra opción, en caso de que tu proyecto necesite trabajar así, es plantearse cambiar se hosting y buscar uno con más potencia que no te ponga esos problemas, al fín y al cabo, la elección de server es tan importante como la programación.

Espero que te sirva de algo este parrafazo :P
  #7 (permalink)  
Antiguo 29/09/2012, 07:14
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Forma optima para crear funciones en php

Cita:
Iniciado por Momonito Ver Mensaje
Tal vez no sea el más ducho del foro, pero si yo revisase tu trabajo, tal vez te diría que intentases mantener el contacto con la BBDD durante menos tiempo, intento explicarme:

Por lo que me parece entender, estas constantemente conectado con la BBDD, haciendo consultas constamente. Tal vez, sería más optimo hacer una "gran consulta" y trabajar con los datos en la maquina cliente y no mantener esa variable ($db global) corriendo constantemente para cada usuario.

Otra opción, en caso de que tu proyecto necesite trabajar así, es plantearse cambiar se hosting y buscar uno con más potencia que no te ponga esos problemas, al fín y al cabo, la elección de server es tan importante como la programación.

Espero que te sirva de algo este parrafazo :P
El realizar varias consultas a la DB en un solo archivo no debería ser el problema, obviamente teniendo en cuenta que las consultas SQL esten bien optimizadas y no este intentando retornar/trabajar con millones de registros...

Cita:
Iniciado por genaro_belen Ver Mensaje
....
Otra cosa, el codigo no es que no quiera pasarlo, es que es casi imposible, son muuchas paginas...
No te estoy pidiendo que subas todo el código de tu sitio, si no del script que mas hace trabajar al servidor, los del hosting deben de a verte dicho "tal script consume muchos recursos en servidor" o algo por el estilo, aparte, mas o menos uno entiende que scripts son los mas "pesados" para que el servidor trabaje con ellos, en todo caso, muestra una sola página de tu sitio y si en el estas usando funciones definidas en otro archivo también publícalo, te vuelvo a repetir, el mostrar 1 o 2 funciones no va a ayudar a los que visiten tu post a saber cual es el problema, porque no estamos viendo como programas en general, es estar adivinando, como ultimo consejo, por lo que veo usas funciones comunes, lo mejor en tu caso es usar clases, investiga al respecto, es mejor a tener funciones desperdigadas...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 29/09/2012, 14:29
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Forma optima para crear funciones en php

Gracias a Todos, No le habia pasado el codigo porque estaba terminando otras cosas.

Aqui hay una pagina que tiene un gran codigo y creo que esta afectando en el proces.

http://pastebin.com/xvqstAwM

Verificalo a ver que tal lo ves..

Gracias
  #9 (permalink)  
Antiguo 30/09/2012, 03:51
Avatar de shaggyz  
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Forma optima para crear funciones en php

Si tu sitio tiene tráfico y tienes problemas de rendimiento, te recomiendo abandonar el código espagueti http://es.wikipedia.org/wiki/C%C3%B3digo_spaghetti

Te recomiendo buscar información sobre estos temas:

- Programación orientada a objetos en php
- Refactorización
- Patrón de diseño MVC
- Y algún framework que te facilite las tareas (zend, cake, code igniter, etc)

Saludos.

Última edición por shaggyz; 30/09/2012 a las 03:54 Razón: Referencias

Etiquetas: funciones, optima, sql, formulario
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:52.