【发布时间】:2013-08-29 11:32:59
【问题描述】:
我目前正在 Symfony 2.3.4 中构建一个 CMS,作为这个 CMS 的一部分,我想将所有的树枝模板存储在一个数据库中。我已经阅读了如何在数据库中存储和访问它们,这似乎很简单——但是,仍然存在一个问题。必须可以扩展存储在数据库中的模板,但我不知道该怎么做。
如果有人有任何经验或知识,我将非常感激。
干杯!
【问题讨论】:
标签: php database templates symfony twig
我目前正在 Symfony 2.3.4 中构建一个 CMS,作为这个 CMS 的一部分,我想将所有的树枝模板存储在一个数据库中。我已经阅读了如何在数据库中存储和访问它们,这似乎很简单——但是,仍然存在一个问题。必须可以扩展存储在数据库中的模板,但我不知道该怎么做。
如果有人有任何经验或知识,我将非常感激。
干杯!
【问题讨论】:
标签: php database templates symfony twig
您可能想深入了解Twig_TokenParser_Extends 以了解extends 标记在内部的工作原理。
【讨论】:
按照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 }
这段代码可以很好地工作。
【讨论】: