Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-07-2008 23:41:57

zudre
Membre
Date d'inscription: 10-05-2007
Messages: 21

Zend_Layout + cache

Bonjour,

Petit problème.  J'ai un contrôlleur qui gère toutes les boîtes sur mon site.  Donc, pour chaque boîte, j'utilise $this->action(....).

Le problème que j'ai touche 2 choses:

1- Pas capable de faire une cache de ce qui sort de l'action. 
J'ai pensé utiliser la fonction postDispatch et d'attraper le $this->getResponse()->getBody(), mais il est vide......

Alors comment le récupérer??

2- J'ai simuler le contenu de la cache.  Il est bel et bien récupérer par la fonction init de mon BoxController, mais il exécute quand même l'action.  Comment l'empêcher de l'exécuter?  J'ai beau mettre un return avec le contenu, rien y fait.  Je ne peux pas non plus mettre un exit, le reste de ma page arrête de s'exécuter.

Quelqu'un a une idée??

Hors ligne

 

#2 13-03-2010 17:13:44

nicoz86
Nouveau membre
Date d'inscription: 07-05-2009
Messages: 3

Re: Zend_Layout + cache

Bonjour,

Je relance ce sujet car je rencontre actuellement le même problème. Je souhaiterais mettre en cache le rendu de certaines actions.

J'ai bien trouvé un plugin présenté par Julien Pauli à cette page :
http://julien-pauli.developpez.com/tuto … _2#LII-D-2

Cependant, il ne correspond pas très bien à ce dont j'ai besoin car il met en cache une page entière alors que je souhaiterais mettre en cache certaines parties seulement de mes pages, appelées grâce à l'aide de vue Zend_View_Helper_Action.

Comme ce membre, j'ai pensé récupérer le rendu avec $this->getResponse()->getBody() mais cela ne donne rien.

Auriez-vous une piste ?

Merci d'avance pour votre aide.

Dernière modification par nicoz86 (13-03-2010 17:14:19)

Hors ligne

 

#3 18-03-2010 10:20:08

pheuh
Membre
Date d'inscription: 18-03-2010
Messages: 22

Re: Zend_Layout + cache

bonjour,
après essai non concluant pour moi aussi avec preDispatch et postDispatch de mon controller, je suis "remonté d'un cran" avec un plugin héritant de Zend_Controller_Plugin_Abstract, que je charge depuis mon bootstrap.
Ce plugin définit les méthodes dispatchLoopShutdown (qui sauvegarde $this->getResponse() en cache), et dispatchLoopStartup (qui charge l'objet reponse avec le cache s'il existe).
Suis parti de l'exemple ici :http://devzone.zend.com/article/3372

Hors ligne

 

#4 19-03-2010 02:34:37

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: Zend_Layout + cache

J'utilise la même technique d'un plugin charger dans le bootstrap.

Je sélectionne mes pages à mettre en cache par regex comme ceci:

Code:

$frontendOptions = array(
   'lifetime' => 7200,
   'debug_header' => true, // pour le déboguage
   'regexps' => array(
       // met en cache la totalité d'IndexController
       '^/$' => array('cache' => true),
 
       // met en cache la totalité d'IndexController
       '^/index/' => array('cache' => true),
 
       // nous ne mettons pas en cache l'ArticleController...
       '^/article/' => array('cache' => false),
 
       // ...mais nous mettons en cache l'action "view"
       '^/article/view/' => array(
            // de cet ArticleController
           'cache' => true,
 
           // et nous mettons en cache même lorsqu'il y a
           // des variables dans $_POST
           'cache_with_post_variables' => true,
 
           // (mais le cache sera dépendent du tableau $_POST)
           'make_id_with_post_variables' => true,
       )
   )
);

Source: http://framework.zend.com/manual/fr/zen … tends.html

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages