2012-11-22 24 views
5

C'è un modo per inserire il codice html da un modello di ramoscello in un file html. Voglio dire, in questo casosymfony2 genera html statico con ramoscello

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

C'è un modo in cui posso fare questo?

$html->output($html_file); 

E gerifica un file html con il modello.

Lo sto facendo perché ho notizie da un blog wordpress e voglio mostrare le ultime notizie nella home page. Quindi vorrei mettere le notizie del mio sito in un file statico per evitare di generarlo con ogni richiesta di casa.

risposta

6

Se si controlla la documentazione più attentamente, si può trovare this chapter, che dice:

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

Grazie per la risposta, ma mi dispiace, immagino che non mi hai capito. Non voglio mostrare l'output del modello di ramoscello. Vorrei mantenere questo contenuto in un file html, che utilizzerò in altri posti. –

+3

Quindi 'file_put_contents()' il tuo '$ contenuto' - no? :) –

+2

sì, ma sto chiedendo un modo per farlo con twig o con S2 –

3

Per completare la risposta @VitalityZurian:

In primo luogo, generare il markup:

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

Quindi, scrivere nel file:

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

È possibile utilizzare i metodi di aiuto Symfony2 a che fare con sedi nei tuoi bundle:

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

E recuperarlo:

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