Question

Par les meilleures collections de pratique sont généralement instanciées dans un bloc. La meilleure pratique dicte également qu'un bloc doit définir une balise de cache et une durée de vie pour tirer parti du mécanisme de mise en cache de bloc.

Cette pratique peut rendre l'utilisation d'une cache de collection quelque peu inutile, au moins jusqu'à la performance frontale. Cependant, le cache de collection à Magento n'est utilisé que dans deux domaines: ni gardé par un cache de bloc: la collection de sites Web (à partir de Mage :: app ()) et la collection Mage_Sales_Model_Resource_order_Item.

Cela a un sens beaucoup. Beaucoup de charge sur ces collections de divers endroits de Magento - il est logique de mettre en œuvre le cache.

Alors, ma question est la suivante: a-t-il un sens pour moi de mettre en œuvre un cache de collection si le seul endroit où il est utilisé est à l'intérieur d'un bloc, et ce bloc n'a pas de grande réutilisation de l'avant-gamme? Toute justification de la meilleure pratique ici serait la bienvenue.


dactylographié de mon téléphone, excuses pour TYPOS

Était-ce utile?

La solution

Un scénario, je peux penser à l'endroit où vous voudrez peut-être cacher la collection est si Autre contenu dans le bloc est susceptible de changer ou si vous travaillez avec plusieurs modèles de collecte.

Par exemple: Dites que vous devez énumérer les catégories du catalogue, mais marquez-les où le client a acheté quelque chose dans ces catégories.

La liste des catégories sera la même pour tous les clients, mais la sortie serait différente pour chaque client.

Dans ce cas, il serait logique de mettre en cache la collection mais pas le bloc.

Un autre exemple: si vous souhaitez répertorier des catégories et si vous avez eu un modèle de publication de blog personnalisé associé à une catégorie. Dans ce cas, vous voudrez peut-être mettre en cache la collection de catégories car elle ne change pas beaucoup mais pas les collections de blog correspondantes car elles seront plus susceptibles de changer. Vous pouvez toujours mettre en cache le bloc pour une durée définie (par exemple quelques heures), mais mettre en cache la collection pendant une période plus longue (quelques jours).

J'imagine que ces types de cas ne sont pas très courants.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top