2010-07-22 6 views
0

Je suis sur le point de créer un menu pour un de mes projets, et j'ai besoin de faire une navigation dynamique. Dans mon arrière-plan Admin, je vais créer un formulaire pour l'entrée URI, afin que les administrateurs puissent créer des liens et définir le parent du lien et leur ordre par rapport à d'autres liens dans le parent. Je vais le faire avec une base de données MySQL. La question ici est:Navigation dynamique de site Web en utilisant Zend Framework - XML ​​vs MySQL

Dois-je aller avec -

  • Menu dynamique créée à partir d'une requête MySQL, qui serait alors transformé en un tableau, et est passé dans Zend_Navigation

    ou

  • Menu dynamique créé à partir d'un fichier XML, qui serait à son tour créé au moment de l'insertion MySQL, et serait donc un fichier statique, qui serait plus facilement cacheable

Donc, fondamentalement, c'est une question de vitesse et de capacité de cache. Lequel de ceux-ci serait plus rapide?

Répondre

1

pros XML:

    fichier
  • est disponible lorsque DB est déconnecté

DB pros:

  • plus simple syntaxe

Votre hypothèse sur la mise en cache est faux, vous n'enverrez jamais le XML à l'utilisateur et laissez cache hem, vous devez analyser dans votre application avant que la page est générée. Je voudrais utiliser le cache et le garder en vie pour la durée de vie. Vous effacez le cache lorsque vous mettez à jour la navigation (enregistrez le fichier XML ou insérez-le dans la base de données). La levée lourde serait analyse syntaxique XML ou aller chercher des données de DB, les deux sont des situations que vous voulez arriver aussi peu de fois que possible et c'est pourquoi vous voudriez le mettre en cache.

Les données mises en cache pourraient être dans un fichier ou RAM (plus rapide); et puisque le fichier XML est déjà un fichier, vous devez aller plus loin pour vraiment utiliser le cache: interpréter le XML et le cache soit

  • l'instance de Zend_Navigation (préférée); ou
  • la config pour Zend_Navigation
+0

Eh bien, ma page ne fonctionnerait pas du tout dans le cas si le DB est en panne, donc il semble aucun sens à essayer de générer ce fichier XML pour la navigation. Merci, je vais avec la DB. Et merci pour la clarification sur XML. Je le savais, mais d'une manière ou d'une autre, je me perdais dans la question de la mise en cache. –

+0

Vous pouvez jeter un oeil aux exemples de Zend_Cache dans le manuel de référence, il est assez facile à utiliser. Et je viserais le cache en mémoire (comme memcached/APC). – chelmertz

Questions connexes