Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai une question au point de vue performence pour l'utilisation du multi-lingue et du caching.
J'utilise le caching APC et dans mon bootstrap quand j'initialise Zend_Translate, je check si les traductions sont déjà stockées en cache.
Si elles ne sont pas en cache j'utilise zend_translate qui rempli un array qui contiendra toutes mes traductions
$translate["en"] = new Zend_Translate('array', APPLICATION_PATH . '/languages/en.php', 'en'); $translate["fr"] = new Zend_Translate('array', APPLICATION_PATH . '/languages/fr.php', 'fr');
ensuite je stocke cet array ($translate) dans le cache.
Si l'array existe déjà en cache, je ne le recrée pas, je le récupère du cache.
Une fois que j'ai mon array $translate je mets les labels de la langue de l'utilisateur dans le registre pour les utiliser dans mon appplication
Zend_Registry::set('Zend_Translate', $translate["en"]);
Pour l'instant mon stockage des traductions se fait via un array dans un fichier php, mais je compte changer pour utiliser un fichier texte ou une db (pour pouvoir faire un outil d'administration pour mettre à jour les fichier de traduction online).
J'ai quelques questions immaginons que le nombre de traduction peut être assez conséquent pour l'application):
- Est-ce que cette mise en place du caching offre un gain de performence intéressant?
- Est-ce que le fait d'utiliser un support ou un autre .ini, bd, array,...) change quelque chose au niveau performence vu que je ne reafraichirait le cache qu'une fosi par semaine (ou manuellement lorsque l'on fait des changement de traductions)?
- Est-ce que le fait d'avoir un seul array qui contient tous les labels dont j'ai besoin dans le site ne risque pas d'etre lourd? Vaut-il mieux essayer de mettre en place un système ou les labels seraient divisé dans différents arrays pour que les acces soient plus rapide, ou est ce que ca ne posera de toute facon pas de problème même en ayant bcp de label dans un même et unique array.
merci d'avance
Hors ligne
Pages: 1