2012-11-22 7 views
5

twigテンプレートからhtmlコードをhtmlファイルに入れる方法はありますか? は私が意味する、この場合にはsymfony2 twigで静的なHTMLを生成

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

は、私はこれを行うことができます方法はありますか?

$html->output($html_file); 

さらに、テンプレートを使用してhtmlファイルを作成します。

私はワードプレスのブログからのニュースがあり、ホームページに最新のニュースを表示したいので、これをやっています。だから私は自分のサイトのニュースを静的なファイルに入れて、各ホームリクエストでそれを生成しないようにしたいと考えています。

答えて

6

あなたはより慎重にドキュメントをチェックした場合、あなたが言うこれ、this chapterを見つけるだろう:あなたのマークアップを生成し、

まず:

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

おかげではなく申し訳ありませんが、私はあなたが私を理解していないと思います。私は、小枝のテンプレートの出力を表示したくない。私はこのコンテンツをHTMLファイルに保存したいと思います。これは他の場所で使用します。 –

+3

'file_put_contents()'あなたの '$ content' - いいえ? :) –

+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'); 
関連する問題