2011-07-12 66 views
11

我知道Twig有一個{%spaceless%}過濾器,但它只能刪除html標籤之間的空格。如何在Symfony2中壓縮html輸出?

我需要爲網站中的每個頁面返回一行html。我有一個可以處理這個問題的正則表達式,但我不知道在sf2中使用它的原因,因爲所有事情都是自動發生的。

我想我必須要註冊一個新的模板引擎,或者添加一個樹枝延伸,但我找不到任何有關這一問題的足夠的文件,所以我堅持

任何想法?

回答

10

要在所有視圖輸出上運行您的正則表達式,您可以掛接由Symfony2框架調度的kernel.response事件。

從部分上kernel.response

本次活動的目的是爲了讓其他系統修改或 在創建後更換Response對象:

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

    // ... modify the response object 
} 

我會建議請閱讀Internals章節瞭解更多詳情。

+1

是的,我確定。我不認爲無空間的過濾器是做這件事的必要條件,所以我不能將它報告爲一個錯誤。它只會刪除html標籤之間的空格。 – HappyDeveloper

+0

有時甚至不能這樣做,我在我的代碼中看到很多換行符,在html標籤之間,所以我只想像我一樣運行自己的正則表達式,但我不知道如何在此框架中執行此操作。 – HappyDeveloper

+0

已更新的答案。 –