2011-07-12 12 views
11

मुझे पता है कि टिग के पास {% spaceless%} फ़िल्टर है, लेकिन यह केवल HTML टैग के बीच रिक्त स्थान हटा देता है।Symfony2 में एचटीएमएल आउटपुट को कैसे कंप्रेस करें?

मुझे साइट के प्रत्येक पृष्ठ के लिए HTML की एक पंक्ति वापस करने की आवश्यकता है। मेरे पास एक regexp है जो इससे निपट सकता है, लेकिन मुझे नहीं पता कि एसएफ 2 में इसका उपयोग कहां किया जाए, क्योंकि सबकुछ स्वचालित रूप से होता है।

मुझे लगता है कि मैं एक नया templating इंजन रजिस्टर, या एक टहनी एक्सटेंशन जोड़ने के लिए है, लेकिन मैं इस विषय के बारे में पर्याप्त प्रलेखन नहीं मिल सका, तो मैं अटक

कोई भी विचार कर रहा हूँ?

उत्तर

10

सभी व्यू आउटपुट पर अपना रेगेक्स चलाने के लिए, आप सिम्फनी 2 फ्रेमवर्क द्वारा प्रेषित kernel.response ईवेंट में हुक कर सकते हैं।

अनुभाग से kernel.response पर:

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

    // ... modify the response object 
} 

मैं सिफारिश करेंगे:

इस घटना के प्रयोजन के अन्य प्रणालियों को संशोधित करने या इसके निर्माण के बाद प्रतिक्रिया वस्तु की जगह अनुमति देने के लिए है और भी विवरण के लिए Internals अध्याय पढ़ना।

+1

हाँ मुझे यकीन है। मुझे नहीं लगता कि निर्बाध फिल्टर ऐसा करने के लिए महत्वपूर्ण है, इसलिए मैं इसे एक बग के रूप में रिपोर्ट नहीं कर सकता। यह केवल एचटीएमएल टैग के बीच रिक्त स्थान हटा देता है। – HappyDeveloper

+0

कभी-कभी यह ऐसा करने में भी असफल रहता है, मैं अपने कोड में एचटीएमएल टैग के बीच कई न्यूलाइन देख रहा हूं, इसलिए मैं हमेशा अपना खुद का रेगेक्सपी चलाने के लिए चाहता हूं जैसा कि मैंने हमेशा किया था, लेकिन मुझे नहीं पता कि इस ढांचे में इसे कैसे किया जाए । – HappyDeveloper

+0

अद्यतन उत्तर। –