PHP Twig呈现巨大的XML数据

时间:2013-11-19 22:03:50

标签: php xml twig

我正在寻找一种方法来利用twig模板的强大功能来生成XML文件,但是这个文件的内容非常庞大。我想避免将这个XML文件的内容放在内存中,所以目前它正在被生成时写入磁盘。

要使用其内容呈现twig模板,它需要传入内存中的完整数据结构。

有没有办法开始使用部分数据对twig模板渲染数据,以避免必须先将所有内容加载到内存中?

1 个答案:

答案 0 :(得分:1)

好的,所以我相信我已经通过覆盖render()文件中的Template.php方法找到了解决方法。当前的render()方法使用ob_start()将缓冲的输出存储到内存,并在ini文件中配置内存限制。一旦超出该内存,您的输出将被转储到默认流,这可能导致部分数据。

通过扩展默认的Template类并覆盖render方法,您可以指定内存缓冲区存储的替代方法,例如php读写流(即php:// temp,php:// fd)。

现在,在实例化Twig_Environment对象时,只需将新模板类传递到:

$twig = new Twig_Environment(
new Twig_Loader_String,
['base_template_class' => 'My_Twig_Template']
);

相关问题