2 votes

référent de dépendance du cache yii

Je suis en train de créer une petite boutique en ligne. Cette boutique a des catégories et des produits. Un produit peut avoir plusieurs catégories. Sur la page du produit, un fil d'Ariane montre le nom de la catégorie de référence (via urlReferrer).

J'essaye de faire en sorte que Yii mette en cache par page avec OutputCache, en fonction du référent (la catégorie, puisque cela changerait le breadcrump-trail).

Voici mon filtre qui ne fonctionne pas :

public function filters() {

    return array(
        array(
            'COutputCache',
            'duration' => 3600,
            'varyByExpression' => array($this->getReferringCategory()),
            'varyByParam' => array('id','slug'),
            'dependency' => array(
                'class' => 'CDbCacheDependency',
                'sql' => 'SELECT MAX(date_updated) FROM product WHERE product_id = '.Yii::app()->request->getParam('id'),
            ),
        )
    );
}

Quelqu'un a-t-il une bonne approche pour cela ?

Cordialement, merci !

0voto

sl4mmer Points 381

Le paramètre 'varyByExpression' doit être une expression PHP (elle sera évaluée par eval) ou un callback PHP (il sera évalué par call_user_func_array()).

si vous utilisez php >=5.4.0, essayez quelque chose comme ceci :

'varyByExpression' => function(){return $this->getReferringCategory();},

Ou comme ceci, pour les anciennes versions :

'varyByExpression' => '$this->getReferringCategory()',

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X