我目前正在Symfony 2.3.4中构建CMS,作为此CMS的一部分,我想将所有树枝模板存储在数据库中。我已经阅读了如何在数据库中存储和访问它们,这看起来很简单 - 但是,仍有一个问题。必须可以扩展存储在数据库中的模板,但我不知道如何执行此操作。
如果有任何人有任何经验或知识,我将非常感激。
干杯!
答案 0 :(得分:1)
您可能希望深入了解Twig_TokenParser_Extends,了解extends
标记在内部的运作方式。
答案 1 :(得分:1)
按照symfony forum和Twig Recipes Page的指南,我可以将所有模板存储在数据库中,并自动进行扩展。确保你的isFresh和getCacheKey返回值,否则你会因某种原因得到无限递归。
值得注意的是,您必须向数据库加载器服务添加标记,而不是像symfony论坛所建议的那样添加chain_loader服务。
vendor.bundle.twig_database_loader:
class: Vendor\Bundle\Twig\TwigDatabaseLoader
arguments: [ @doctrine.orm.entity_manager ]
tags:
- { name: twig.loader }
此代码可以很好地工作。