如何将PHP文件包含在Symfony2中的树枝文件中

如何将PHP文件包含在Symfony2中的树枝文件中

问题描述:

我试图在Symfony2项目上插入最新的推文“小部件”。我找到了一个用PHP编写的理想脚本,可以完美地完成这项工作。如何将PHP文件包含在Symfony2中的树枝文件中

但是,我不知道将第三方PHP文件放在Symfony2项目中的最佳位置。我将它们放在与我的所有树枝文件所在的文件夹相同的位置,将其名称更改为tweets.php.twig,甚至将它们放在网络文件夹中。当我尝试将文件包含在需要Twitter提要的twig文件中时,会出现一个错误,指出它找不到该文件。

我是否有正确的想法,还是必须将PHP转换为树枝文件或将PHP脚本写入控制器?

我相信推荐的方法是创建一个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