Создайте событие в symfony2 для визуализации файла ветки

Я новичок в symfony2 и ищу решение для создания события, которое отображает файл ветки.

Предположим, у нас есть базовый шаблон

<!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 %}

вызывает «ViewHelper» (я пришел из Zend ;-)), который вызывает функцию из VersionBundle. Но теперь самое сложное:
VerionBundle зарегистрирован только для среды ‘dev’ и ‘test’ в AppKernel.
Вот почему я создаю блок ‘version’ вместо вызова ViewHelper непосредственно в файле базовой ветки.

Но я не знаю, как создать событие, чтобы сначала отобразить шаблон ветки версии, чтобы данные передавались в базовую веточку.

0

Решение

Возможно, я бы изменил способ, которым вы пытаетесь это сделать, используя больше возможностей Symfony и избегая определения Zend как «помощников». Хорошее эмпирическое правило — сохранять Twig настолько минимальным, насколько это возможно, просто отображая данные, полученные шаблонами.

Сначала определите version переменная в parameters_dev.yml а также parameters_test.yml файлы (в app/config). Пример:

parameters:
version: 32

Определите это как version: ~ в parameters.yml,

Сделайте эту переменную доступной во всех шаблонах Twig в app/config/config.yml файл:

twig:
globals:
version: %version%

Тогда в вашем version определение блока, сделайте следующее:

{% block version %}
{% if version is not null %}
<div id="version"><p>Version: {{ version }}</p></div>
{% endif %}
{% endblock %}

Надеюсь, поможет!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector