Xml Zend框架中的简单内容存储(无数据库)

Xml Zend框架中的简单内容存储(无数据库),xml,zend-framework,Xml,Zend Framework,我正在一个使用Zend框架的现有网站上工作,我试图避免硬编码的内容,这些内容本质上需要是动态的 我有一个需要作为链接输出的文章列表,无论有没有描述。每个链接生成一个动态页面,该页面将输出包含面包屑和其他文章标题链接列表的完整文章,保存状态以突出显示当前文章。我有一个模板可以接受每个变量,但首先我需要一个内容源 由于列表有点短,我们不认为应该将其存储在数据库中(如果没有CMS,我如何在数据库中输入/编辑上述内容?) 这可以通过解析XML文档来实现吗,或者有没有其他我没有想到的方法?我在非Zend

我正在一个使用Zend框架的现有网站上工作,我试图避免硬编码的内容,这些内容本质上需要是动态的

我有一个需要作为链接输出的文章列表,无论有没有描述。每个链接生成一个动态页面,该页面将输出包含面包屑和其他文章标题链接列表的完整文章,保存状态以突出显示当前文章。我有一个模板可以接受每个变量,但首先我需要一个内容源

由于列表有点短,我们不认为应该将其存储在数据库中(如果没有CMS,我如何在数据库中输入/编辑上述内容?)

这可以通过解析XML文档来实现吗,或者有没有其他我没有想到的方法?我在非Zend PHP站点上使用过SimpleXML,但直接调用该类似乎不起作用(我认为这可能是路径问题)

编辑:我最终使用了prodigitalson推荐的解决方案:

我为我的内容的元数据(标题、哈希、描述、包含文件)创建了一个XML文件,并将其放在我的app/modules/default/model文件夹中。然后,我将每一篇完整的文章作为一个包含片段进行布局,并将文件放在视图/部分中。我用所需的方法创建了一个自定义类,并将其放在我的库文件夹中——然后,我在控制器的init()方法中实例化了我的类。然后,该对象可用于该控制器内的所有页面/操作


然后,我可以从相应视图中的控制器实例化对象调用任何方法。通过使用这种方法,我能够输出链接、完整的文章以及我需要的所有其他内容。在输出链接列表之前,我将当前URL参数(哈希)传递给类,以便突出显示当前链接。

我可能会坚持使用XML(或ini,如果您愿意的话)来存储文章的元信息(html文件路径、导航标题、URL/URL参数)。然后使用Zend_Config_XML(或ini)代替SimpleXML Id。获取信息。从这里开始,您需要从中提取所需的变量包,并包含实际的内容文件(我会将其与配置文件完全分开,只需存储“内容”文件的路径即可)。

使用数组。您可以将数据放在单独的文件中:

// in data.php
return array(
  array("data1", "data2"),
  array("data3", "data4")
);

// to access data
$data = require('data.php');

它更简单、更快(而且很难看,但它是PHP;-)

谢谢,听起来不错。当您包含内容文件(文件名由XML提供)时,您使用的是常规的PHP include还是Zend函数?这取决于您的需求。我认为,至少您需要将内容缓冲到模板中
echo
的字符串变量中,因此最好的做法可能是制作一个视图帮助器来实现这一点。但是partial helper已经实现了这一点,所以我将扩展它,从“content”目录中读取内容,或者将应用程序的配置更改为也从这个content目录中读取部分内容,这样您就可以像加载典型的部分内容一样加载内容。当然,如果你不想用PHP解析内容,那么你需要让你的助手使用
file\u get\u contents
,而不是include。我个人讨厌这种方法。我不在乎它是否更快。。。我只是讨厌配置文件采用本机脚本语言,而不是配置/数据交换格式(不包括JSON)。这仍然绝对是一个有效的答案——我只是不能强迫自己这么做:——)正如我们用法语所说:“不管你喝了多少瓶酒。”