2011-08-31 103 views
2

我試圖在Symfony2項目上插入最新的推文「小部件」。我找到了一個用PHP編寫的理想腳本,可以完美地完成這項工作。如何將PHP文件包含在Symfony2中的樹枝文件中

但是,我不知道將第三方PHP文件放在Symfony2項目中的最佳位置。我將它們放在與我的所有樹枝文件所在的文件夾相同的位置,將其名稱更改爲tweets.php.twig,甚至將它們放在網絡文件夾中。當我嘗試將文件包含在需要Twitter提要的twig文件中時,會出現一個錯誤,指出它找不到該文件。

我是否有正確的想法,還是必須將PHP轉換爲樹枝文件或將PHP腳本寫入控制器?

回答

3

我相信推薦的方法是創建一個Symfony2包,它封裝了推特部件的所有邏輯。然後,您會打電話給您的捆綁軟件控制器並將響應傳遞給您的樹枝模板。

如果這太複雜了,或者你想要更快更骯髒的東西 - 你可以創建一個像TweetWidgetController.php這樣的控制器,並把代碼放到那裏,像widgetAction那樣的動作。只要確保你在Symfony響應對象中返回微博小部件輸出。

然後從你的主控制器 - 你可以這樣做

$widget = $this->forward('YourBundle:TweetWidget:widget', array('twitterid' => 'yourtwitterid')); 

return $this->render('YourBundle:yourtemplate.html.twig',array('widget' => $widget->getContent())); 

現在您的樹枝模板,你可以把它放在任何你想通過引用它像:

{{ widget }} 
+0

這個答案產量在正確的方向(+ 1);) - 據我的理解,第三方代碼應放置在供應商目錄(像所有其他「供應商」)。我想 - 創建一個捆綁包是好的 - 但是對於這樣的複雜性來說,可能會產生開銷 – madflow

+0

你會推薦madflow的其他方法嗎?有沒有更簡單,更具成本效益的方法? – mickburkejnr