2012-11-22 7 views
5

के साथ स्थिर एचटीएमएल उत्पन्न करता है क्या एचटीएमएल कोड को एक एचटीएमएल फाइल में एक एचटीएमएल फाइल में डालने का कोई तरीका है। मैं इस मामलेsymfony2 twig

$html = $this->render('SiteBundle:Generated:home_news.html.twig', array('news' => $news))->getContent(); 

वहाँ एक रास्ता है, जहां मैं यह कर सकता है में मतलब है,?

$html->output($html_file); 

और यह टेम्पलेट के साथ एक HTML फ़ाइल gerenates।

मैं ऐसा इसलिए कर रहा हूं क्योंकि मेरे पास एक WordPress ब्लॉग से खबर है और मैं होमपेज में नवीनतम समाचार दिखाना चाहता हूं। इसलिए मैं प्रत्येक साइट अनुरोध के साथ इसे उत्पन्न करने से बचने के लिए अपनी साइट की एक स्थिर फ़ाइल में समाचार रखना चाहता हूं।

उत्तर

6

आप और अधिक ध्यान से प्रलेखन जाँच हैं, तो आप this chapter ढूंढ सकते हैं, का कहना है कि जो:

$content = $this->renderView('AcmeHelloBundle:Hello:index.html.twig', array('name' => $name)); 
+2

प्रतिक्रिया के लिए धन्यवाद, लेकिन खेद है, मुझे लगता है कि तुम मुझे समझ में नहीं आता है। मैं twig टेम्पलेट के आउटपुट दिखाना नहीं चाहता। मैं इस सामग्री को एक HTML फ़ाइल में रखना चाहता हूं, जिसे मैं अन्य स्थानों पर उपयोग करूंगा। –

+3

तो 'file_put_contents()' आपकी '$ सामग्री' - नहीं? :) –

+2

हां, लेकिन मैं इसे टहलने के साथ या S2 –

3

@VitalityZurian जवाब पूरा करने के लिए:

पहले, अपने मार्कअप उत्पन्न:

$content = $this->renderView('AcmeHelloBundle:Hello:index.html.twig', array('name' => $name)); 

फिर, फ़ाइल में लिखें:

$file = file_put_contents($filename, $content); 

आप अपने बंडलों में स्थानों के साथ निपटने के लिए Symfony2 मदद तरीकों का उपयोग कर सकते हैं:

$bundleResourcesDir = $this->get('kernel')->locateResource('@AcmeAnotherBundle/Resources/views'); 
file_put_contents($bundleResourcesDir.'/index.html.twig` 

और इसे पुनः प्राप्त:

$view = $this->get('kernel')->locateResource('@AcmeAnotherBundle/Resources/views/index.html.twig');