使用 Zend 框架的动态网站导航 - XML 与 MySQL

Posted

技术标签:

【中文标题】使用 Zend 框架的动态网站导航 - XML 与 MySQL【英文标题】:Dynamic Website Navigation Using Zend Framework - XML vs MySQL 【发布时间】:2010-07-22 12:13:12 【问题描述】:

我即将为我的一个项目创建一个菜单,我需要进行动态导航。

在我的后台管理中,我将为 URI 条目创建一个表单,以便管理员可以创建链接并定义链接的父级以及它们相对于父级中其他链接的顺序。我将使用 mysql 数据库来执行此操作。这里的问题是:

我应该和 -

从 MySQL 查询创建的动态菜单,然后将其转换为数组,并传递给 Zend_Navigation

从 XML 文件创建的动态菜单,该菜单会在 MySQL 插入时创建,因此是一个静态文件,更容易缓存

所以基本上,这是一个速度和缓存能力的问题。其中哪一个会更快?

【问题讨论】:

【参考方案1】:

XML 专家:

数据库离线时文件可用

数据库专家:

更简单的语法

您对缓存的假设是错误的,您永远不会将 XML 发送给用户并让他们缓存它,您需要在生成页面之前在您的应用程序中解析它。

我会使用缓存并让它终生存活。更新导航时会擦除缓存(保存 XML 或插入数据库)。繁重的工作将是解析 XML从 DB 中获取数据,这两种情况都是您希望尽可能少发生的情况,这就是您想要缓存它的原因。

缓存的数据可以在文件或 RAM 中(更快);并且由于 XML 文件已经是一个文件,您需要更进一步才能真正使用缓存:解释 XML 和缓存

Zend_Navigation 实例(首选);或 Zend_Navigation 的配置

【讨论】:

好吧,如果数据库关闭,我的页面将根本无法工作,因此尝试为导航生成此 XML 文件似乎没有任何意义。谢谢,我会和DB一起去的。感谢您对 XML 的澄清。我知道这一点,但不知何故我对整个缓存的事情感到困惑。 你可以看看参考手册中Zend_Cache的例子,它很容易使用。我的目标是在内存中缓存(如 memcached/APC)。

以上是关于使用 Zend 框架的动态网站导航 - XML 与 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

如何在zend框架中为dojo动态树创建dojo数据onclick事件以实现程序化方法

使用 zend 框架创建动态侧边栏的最佳实践

Zend Framework-导航设置当前页面标题并打开标记标题导航.xml

使用 Zend (1.12.17) 和 Ajax 的动态下拉列表

Zend框架中的网站,不在浏览器中打开

开发大流量PHP网站,用啥框架比较好?codeigniter?Zend Framework?