Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Organizar objetos

Estas en el tema de Organizar objetos en el foro de PHP en Foros del Web. Hola, tenía una duda sobre como declarar una clase y como sería la forma correcta. Tengo una clase como ejemplo así coche con una función ...
  #1 (permalink)  
Antiguo 03/03/2014, 03:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 45
Antigüedad: 14 años, 9 meses
Puntos: 1
Organizar objetos

Hola, tenía una duda sobre como declarar una clase y como sería la forma correcta.

Tengo una clase como ejemplo así coche con una función get_coche y get_coches para devolver:

Código PHP:

class coche{
..
atributos..

public function 
get_coche(){

}

public function 
get_coches(){
}


La clase realmente dispone de bastantes más funciones, el problema es que a la hora de generar listados en la aplicación web recupera 60 coches cada vez, con lo cual se crean 60 objetos y crea un poco de sobrecarga en el servidor.

He visto que la consulta a la base de datos es rápida de 2 ms, pero los objetos hay algunas veces que me tarda hasta 2 segundos a crearlos debido al tráfico de la web y los recursos que consume apache.

Creo que sería más correcto por mi parte crearme una clase llamada coches que contenga un array de objetos coche y de este modo liberar recursos de la clase coche, sería una buena práctica?

Mi pregunta es si sería mejor planteamiento de como está ahora mismo.

Un saludo y gracias de antemano :)
  #2 (permalink)  
Antiguo 03/03/2014, 04:45
Avatar de supercoco79  
Fecha de Ingreso: octubre-2012
Ubicación: Islas Canarias
Mensajes: 115
Antigüedad: 12 años, 1 mes
Puntos: 35
Respuesta: Organizar objetos

Hola,

Creo que es una buena idea el que te hayas planteado crear una clase Coche para lo que te propones.

La opción que propones no va a cambiar nada en absoluto, ya que estás creando un array de objetos. Piénsalo, ¿qué diferencia hay en crear un array de 60 objetos entre crear esos 60 objetos por separado? Esa colección de objetos Coches no va a cambiar nada en absoluto.

Si tu servidor está sobrecargado, no creo que sea a la definición de estos objetos en sí. Yo miraría si los métodos o el constructor de la clase Coche realiza muchas queries al servidor MySQL. Nosotros utilizamos un framework (CodeIgniter), el cual carga gran número de clases por defecto, y el efecto en la carga de la página es mínimo.

Si lo que quieres es recoger una colección de muchos coches, también tienes la opción de recoger los datos de la base de datos de una manera conjunta, intentando combinar distintas tablas a través de la instrucción JOIN. Si das más detalles de la clase igual podemos ver en dónde se puede mejorar.

Espero haber aclarado un poco más tus ideas.

Saludos.
__________________
Yesterday was the only easy day. Deportes de aventura
  #3 (permalink)  
Antiguo 04/03/2014, 06:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 45
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Organizar objetos

Gracias supercoco79, tenías razón, con lo que me digíste que no debía de sobrecargar, he creado un duplicado de la clase para hacer pruebas y resulta que lo que hacia la sobrecarga de recursos era la función file_exist si no recuerdo mal.

Se ve que hacia lectura de los archivos cuando montaba los objetos de la clase y demoraba mucho tiempo. La base de datos sabía que no era porque realicé la consulta directamente en el phpmyadmin y daba un buen tiempo, aparte de que tengo el log puesto a consultas mas lentas de 1 segundo y no se me genera ninguna.

Un saludo y gracias ;)

Etiquetas: objetos, organizar
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 22:30.