我目前正在 Symfony 2.3.4 中构建一个 CMS,作为这个 CMS 的一部分,我想将所有的树枝模板存储在一个数据库中。我已经阅读了如何在数据库中存储和访问它们,这似乎很简单——但是,仍然存在一个问题。必须可以扩展存储在数据库中的模板,但我不知道该怎么做。
如果有人有任何经验或知识,我将不胜感激。
干杯!
按照symfony 论坛和Twig 食谱页面上的指南,我能够将所有模板存储在数据库中,并自动扩展作品。请确保您的 isFresh 和 getCacheKey 返回值,否则您将由于某种原因获得无限递归。
还值得注意的是,您必须向数据库加载器服务添加标签,而不是像 symfony 论坛建议的那样添加 chain_loader 服务。
vendor.bundle.twig_database_loader:
class: Vendor\Bundle\Twig\TwigDatabaseLoader
arguments: [ @doctrine.orm.entity_manager ]
tags:
- { name: twig.loader }
这段代码会很好地工作。
您可能想深入了解 Twig_TokenParser_Extends以了解extends
标签在内部的工作方式。