Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Je me suis mis récemment à ZF2 après quelques années sur ZF1 et j'en ai profité pour découvrir Doctrine au passage. Je risque donc de venir vous embêter pas mal ces prochains jours.
Ma question concerne la mise en cache des résultats.
Coté cache, globalement, j'ai bien vu les caches possibles :
- metadata_cache
- query_cache
- result_cache
- hydration_cache
J'ai également vu qu'on pouvait utilisé le "result_cache" en paramétrant sa query avec useResultCache.
Par contre, y a-t-il une façon globale de faire ça pour ses entités ? (sur un findBy par exemple)
Idem sur les enfants d'une entité, y a-t-il moyen de paramétrer ça sans devoir le coder dans le get ?
En gros un mécanisme de cache sur les find, et get des enfants avec suppression du cache sur le delete.
Sinon, une idée pour mise en place ?
Merci
Hors ligne
Salut, les cas où tu auras besoin d'utiliser un cache pour des requêtes SQL restera assez limité. Par exemple la récupération d'un profil utilisateur n'a pas de sens d'être en cache car si tu veux changer un droit sur l'utilisateur il faut que ça soit instantané et non pas 4h00 après quand le cache sera expiré . Donc utiliser un cache global j'en vois pas l'utilité. C'est sûrement possible mais jamais cherché à le faire pour la raison cité ci-dessus.
Ensuite tu as déjà un mécanisme de cache interne dans doctrine, c'est à dire que si tu fais deux fois la même requête SQL pour afficher une page, elle ne serait faite qu'une fois par doctrine .
Hors ligne
Bonjour Orkin,
Perso le fait de tout mettre en cache m'a déjà servi sur un projet (serveur à la ramasse).
Je mettais les résultats de requêtes en cache et supprimais ceux concerné lors d'un update / save. Gros gain, mais c'était en effet spécifique.
Merci pour ta réponse en tout cas, on va dire que cela n'est pas prévu par défaut, je vais donc voir ce que je peux faire tout seul comme un grand
Hors ligne