【发布时间】:2015-01-19 06:18:35
【问题描述】:
我是 symfony2 的新手,我正在寻找解决方案来创建一个呈现 twig 文件的事件。
假设我们有一个基本模板
<!DOCTYPE html>
<html>
<head>
{% block meta %}{% endblock %}
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}{% endblock %}
</head>
<body data-cachetime="{{ cacheTimeStamp() }}">
{% block header %}{% endblock %}
<div id="content">
<div class="container">
{% block content %}{% endblock %}
</div>
</div>
{% block footer %}{% endblock %}
{% block version %}{% endblock %}
{% block javascripts %}{% endblock %}
{% block trackers %}{% endblock %}
</body>
</html>
如您所见,我有一个“版本”块。我创建了一个从文件中读取版本的 VersionBundle。版本树枝模板
{% block version %}
<div id="version"><p>Version: {{ versionString() }}</p></div>
{% endblock %}
调用从 VersionBundle 调用函数的“ViewHelper”(我来自 Zend ;-))。但现在棘手的部分: VerionBundle 仅在 AppKernel 中为“开发”和“测试”环境注册。 这就是为什么我创建“版本”块而不是直接在基本树枝文件中调用 ViewHelper。
但我不知道如何创建一个事件来首先呈现版本树枝模板,以便数据将传递给基础树枝。
【问题讨论】:
-
我不明白你为什么称它为“事件”。你为什么不把这个带有版本信息的 div 块添加到你的基本模板中呢?你到底需要什么?
-
我不想在基本模板中询问环境并决定是否渲染版本块...在“在线”中,我没有注册捆绑包,所以 versionString() 不是可用...这就是我使用版本块的原因...我想避免错误/警告 Zend 具有相同的功能,称为占位符...