2012-11-22 27 views
5

Có cách nào để đặt mã html từ một mẫu văn bản vào một tệp html không. Ý tôi là, trong trường hợp này làsymfony2 tạo static html với twig

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

Có cách nào để tôi có thể thực hiện việc này không?

$html->output($html_file); 

Và nó sẽ tìm kiếm một tệp html có mẫu.

Tôi đang làm điều này vì tôi có tin tức từ blog wordpress và tôi muốn hiển thị tin tức mới nhất trong trang chủ. Vì vậy, tôi muốn đưa tin tức về trang web của tôi vào một tệp tĩnh để tránh tạo ra nó với mỗi yêu cầu về nhà.

Trả lời

6

Nếu bạn kiểm tra tài liệu hướng dẫn cẩn thận hơn, bạn muốn tìm this chapter, mà nói:

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

Cảm ơn đã phản ứng nhưng xin lỗi, tôi đoán bạn đã không hiểu tôi. Tôi không muốn hiển thị đầu ra của mẫu cành. Tôi muốn giữ nội dung này thành một tệp html, mà tôi sẽ sử dụng ở những nơi khác. –

+3

Vì vậy, 'file_put_contents()' your '$ content' - no? :) –

+2

có, nhưng tôi hỏi về một cách để làm điều đó với cành hoặc với S2 –

3

Để hoàn thành câu trả lời @VitalityZurian:

Thứ nhất, tạo đánh dấu của bạn:

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

Sau đó, ghi vào tệp:

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

Bạn có thể sử dụng phương pháp Symfony2 giúp đỡ để đối phó với các địa điểm trong các nhóm của bạn:

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

Và lấy nó:

$view = $this->get('kernel')->locateResource('@AcmeAnotherBundle/Resources/views/index.html.twig'); 
Các vấn đề liên quan