Symfony2: как расширить пакет? - PullRequest
0 голосов
/ 26 января 2012

Если у меня есть AlphaBunde, который является родителем BetaBundle, как я могу расширить блок веток, не переопределяя весь шаблон?

Как я могу импортировать маршруты, которые существуют только в BetaBundle?

Ответы [ 2 ]

3 голосов
/ 27 января 2012

Вы не можете расширить блок в Twig.Вы можете перегружать его, если расширяете шаблон (и вызываете parent (), который работает как наследование).

Если вы расширяете пакет, вы можете перегружать его контроллеры или ресурсы.Я не думаю, что вы действительно можете расширить шаблон из родительского пакета из-за того, как разрешены пути.Подробнее об этом можно прочитать в главе документации Расширение пакета .

Кроме того, Как использовать наследование пакета для переопределения частей пакета , может прояснить несколько вещей.

Не забудьте проверить Переопределение шаблонов пакетов , чтобы узнать, как перегрузить шаблоны в приложении.

О маршрутах: я думаю, вам придется определить каждый маршрут в приложениифайл конфигурации, если вы хотите импортировать их выборочно.

0 голосов
/ 27 января 2012

Если вы хотите использовать шаблон из другого пакета и не хотите перезаписывать весь шаблон, используйте это:

// Your file in ProjectAplhaBundle index.html.twig

{% extends "ProjectBetaBundle::layout.html.twig" %}

{% block content %}
    {{ parent() }}
    Somethings added to the existing content    
{% endblock %}

Для маршрутизации только из BetaBundle удалите все маршруты (routing.yml в папке приложения) и оставьте только один с чем-то вроде этого:

ProjectBetaBundle:
    resource: "@ProjectBetaBundle/Resources/config/routing.yml"
    prefix:   /

Затем вы указываете все ваши маршруты в @ ProjectBetaBundle / Resources / config / routing.yml

Надеюсь, это поможет. Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...