Symfony surcharge BasePeer::doSelect()
Posté : 10 janv. 2009, 00:11
Bonjour tlm 
Symfony c'est bien c'est beau et tout et tout... Mais voilà que j'ai un petit problème. J'ai une table de plus de 400000 enregistrements avec bien sur d'autres tables qui ont des foreignKey pointant vers elle.
Je voudrais donc mettre ses données en cache ( la forme m'importe peu, mais surement tableau objets propel serializés ), principalement pour l'interface d'admin ou les selects formés à partir de cette table sont très lourds. Je pourrais tout aussi bien désactiver l'affichage du select mais c'est un choix que je n'ai pas.
Le but est donc intercepté au niveau du modèle les "requètes" demandant l'affichage de TOUS les enregistrements.
Soit
Donc j'ai pensé à ça
lib/model/ModelePeer.php
Symfony c'est bien c'est beau et tout et tout... Mais voilà que j'ai un petit problème. J'ai une table de plus de 400000 enregistrements avec bien sur d'autres tables qui ont des foreignKey pointant vers elle.
Je voudrais donc mettre ses données en cache ( la forme m'importe peu, mais surement tableau objets propel serializés ), principalement pour l'interface d'admin ou les selects formés à partir de cette table sont très lourds. Je pourrais tout aussi bien désactiver l'affichage du select mais c'est un choix que je n'ai pas.
Le but est donc intercepté au niveau du modèle les "requètes" demandant l'affichage de TOUS les enregistrements.
Soit
ModelePeer::doSelect(new Criteria());
ou equivalent.Donc j'ai pensé à ça
lib/model/ModelePeer.php
class ModelePeer.php extends BaseModelePeer
{
public static function doSelect(Criteria $criteria, $con = null)
{
$c = new Criteria();
if($c == $criteria) {
// get cache
} else {
parent::doSelect($criteria,$con);
}
}
}
Qu'en pensez vous?