2

我目前正在 Symfony 2.3.4 中构建一个 CMS,作为这个 CMS 的一部分,我想将所有的树枝模板存储在一个数据库中。我已经阅读了如何在数据库中存储和访问它们,这似乎很简单——但是,仍然存在一个问题。必须可以扩展存储在数据库中的模板,但我不知道该怎么做。

如果有人有任何经验或知识,我将不胜感激。

干杯!

4

2 回答 2

1

按照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 }

这段代码会很好地工作。

于 2013-08-29T15:10:11.387 回答
1

您可能想深入了解 Twig_TokenParser_Extends以了解extends标签在内部的工作方式。

于 2013-08-29T11:40:01.540 回答