Как сжать вывод html в Symfony2?

Я знаю, что Twig имеет фильтр {% spaceless%}, но он удаляет только пробелы между тегами html.

Мне нужно вернуть одну строку html для каждой страницы сайта. У меня есть регулярное выражение, которое может с этим справиться, но я не знаю, где его использовать в sf2, поскольку все происходит автоматически.

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

Любые идеи?


person HappyDeveloper    schedule 12.07.2011    source источник


Ответы (1)


Чтобы запустить ваше регулярное выражение для всех выходных данных представления, вы можете подключиться к событию kernel.response, которое отправляется фреймворком Symfony2.

Из раздела kernel.response:

Цель этого события - позволить другим системам изменять или заменять объект Response после его создания:

public function onKernelResponse(FilterResponseEvent $event)
{
    $response = $event->getResponse();

    // ... modify the response object
}

Я бы рекомендовал прочитать главу Внутреннее устройство для получения более подробной информации.

person Stephen Watkins    schedule 12.07.2011
comment
Да, я уверен. Я не думаю, что беспространственный фильтр предназначен для этого, поэтому я не могу сообщить об этом как об ошибке. Он удаляет только пробелы между тегами html. - person HappyDeveloper; 13.07.2011
comment
Иногда это даже не удается, я вижу много новых строк в моем коде между тегами html, поэтому я просто хочу запустить свое собственное регулярное выражение, как всегда, но я не знаю, как это сделать в этой структуре. - person HappyDeveloper; 13.07.2011
comment
Ответом была «внутренняя часть», спасибо. Теперь у меня есть однострочный html-вывод = p - person HappyDeveloper; 13.07.2011
comment
Я бы сказал, что без космоса - не лучшее решение. Например, ‹i class = fa fa-lg fa-fw fa-home› ‹/i› ‹span class = menu-item-parent› Панель управления ‹/span› не то же самое, что ‹i class = fa fa-lg fa-fw fa-home ›‹/i›‹ span class = menu-item-parent ›Dashboard ‹/span› (обратите внимание на пробел после закрытия i). - person Denis V; 27.02.2014
comment
Хорошие отзывы всем. Я изменил ответ, чтобы учесть комментарии. - person Stephen Watkins; 18.03.2014