Ver Mensaje Individual
  #11 (permalink)  
Antiguo 23/02/2012, 11:17
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Modelo base y modelo extendido

Entonces no sabes de DQL, puedes usar DQL, o un query para hacerlo, es por eso que debes de abstraer eso, tu método getApps debe de ser un proxy a un modelo que traiga los datos desde la BDD, eso se conoce como "lazy loading", cualquier framework decente lo hace, o bien puedes tú programar eso que traiga solo las apps activas.

Nada te limita tampoco a que le pases parámetros a tu método de getApps como el offset y la cantidad de apps a cargar, para eso las funciones aceptan parámetros, para cambiar el comportamiento de la función, y no es necesario traer toda la base de datos para eso, sí lo haces así actualmente pues vas a tener un problema muy grave de rendimiento cuando tu sistema sea muy grande.

Te invito un poco a que leas bien sobre usar un ORM como Doctrine y estudies usar DQL, aunque también lo puedes hacer programandolo tú, pero es más trabajo y mejor usa SQL para ello, para eso existe, solo es cuestión de que separes bien las capas, ej:
Código PHP:
Ver original
  1. class User {
  2.         public function getApps($bActive = false, $offset = 0)
  3.         {
  4.                  $appsDAO = DAO::factory('Apps');
  5.                  return $appsDAO->getAppsByUser($this, $bActive, $offset);
  6.         }
  7. }

Posibilidades hay muchas, formas de hacerlo también hay muchas, como te digo, todo depende de como hagas esa abstracción, y las decisiones que tomes como arquitecto de software.

Saludos.