我想从我的 Symfony2 应用程序中的数据库加载某些 Twig 模板,同时仍然保留使用 native 加载器在标准文件系统位置呈现模板的可能性。如何实现这一目标?
据我所知,不可能将多个加载器注册到 Twig 环境。我一直在思考两种方式(目前):
更新 1:
Twig 似乎支持 Twig_Loader_Chain可以在我的第一个选项中使用的类。尽管如此,默认加载器应该可以访问并作为第一个选项传递给链。
最佳答案
要使用 Twig_Loader_Chain,您需要 Symfony 2.2
https://github.com/symfony/symfony/pull/6131
然后你可以简单地配置你的加载器:
services:
twig.loader.filesystem:
class: %twig.loader.filesystem.class%
arguments:
- @templating.locator
- @templating.name_parser
tags:
- { name: twig.loader }
twig.loader.string:
class: %twig.loader.string.class%
tags:
- { name: twig.loader }
更新:
看起来仍然存在一些问题(文件系统加载器有时找不到模板)但我发现了这个:
http://forum.symfony-project.org/viewtopic.php?t=40382&p=131254
似乎工作得很好!
关于templates - 如何在 Symfony2 环境中注册另一个(自定义)Twig 加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343435/