Snippets tagged "cache symfony"
[Symfony] Effacer partiellement le cache d'une application
Toujours utile depuis un contexte d'application différent de celui visé :
sfToolkit::clearGlob(sfConfig::get('sf_cache_dir').'/frontend/*/all/*/templates/toto.cache');
[Symfony] Utiliser sqlite pour stocker le cache des templates
D'abord, s'assurer d'avoir le module sqlite de php5 chargé et activé :
$ sudo apt-get install php5-sqlite
$ sudo /etc/init.d/apache2 restart
Dans le fichier factories.yml de l'application concernée :
view_cache:
class: sfSQLiteCache
param:
automaticCleaningFactor: 0
database: %SF_ROOT_DIR%/cache/cache.db
Et voilà, maintenant les symfony cc se feront en un éclair.
[Symfony] Cacher simplement un fragment de code
Cacher le résultat d'un processus coûteux pour 24h :
<?php if (!cache('huge_process_of_the_death', 86400)): ?> <?php foreach ($stuff as $item): ?> // Your amazingly huge iteration processes here <?php endforeach; ?> <?php cache_save() ?> <?php endif; ?>
Pour le cacher pour un utilisateur spécifique :
<?php if (!cache('huge_process_of_the_death'.md5($user->getEmail()), 86400)): ?> <?php foreach ($stuff as $item): ?> // Your amazingly huge iteration processes here <?php endforeach; ?> <?php cache_save() ?> <?php endif; ?>
On s'assure juste de prendre l'empreinte md5 d'un attribut unique dans la table associée ;)
[Symfony] Cacher un objet Propel sérialisé
Peut être utile pour les gros objets couteux et utilisés souvent.
$key = md5('myPropelObjectKey'); $cache = new sfProcessCache(); if ($cache->has($key)) { $obj = unserialize($cache->get($key)); } else { $obj = Table::doSelect(); $cache->set($key, serialize($obj)) }
