Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/09/2011, 10:28
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: POO, ORM con doctrine y problemas en la cantidad de datos recuperados

Desconozco lo que estas haciendo, pero el bajar toda la BDD a objetos es una pésima idea, la carga de memoria y la lentitud que va a tener tu sistema es abismal.

Si estas usando Doctrine, por que no usarlo como debe de hacer, para eso tienes el DQL, y dejar que sea Doctrine que hidrate tus objetos como los necesitas, y los filtres como los necesitas.

Creo la forma que lo implementaste le quitaste todo el beneficio de Doctrine, ya que básicamente por lo que dices estas haciendo esto:
Código PHP:
Ver original
  1. $sQuery = "SELECT * FROM foo";
  2. $aObjs = array();
  3. while ($row = mysql_fetch_row(mysql_query($sQuery)) {
  4.       $aObjs[] = new MyObj($row);
  5. }
  6.  
  7. // y despues filtras

Debes de filtrar usando DQL, y usar las mismas funciones de DQL para obtener el total, paginar, etc.

Tener todos los objetos en memoria siempre te va a ocasionar ese problema, por lo que para reparar tu problema, debes de replantear todo tu sistema, no solo aumentar el límite de memoría.

Saludos.