如何在Symfony2的Twig文件中包含PHP文件

如何在Symfony2的Twig文件中包含PHP文件,php,twitter,symfony,twig,Php,Twitter,Symfony,Twig,我正试图在一个Symfony2项目中插入一个最新的tweets“widget”。我找到了一个用PHP编写的理想脚本,它可以完美地完成这项工作 但是,我不知道在Symfony2项目中放置第三方PHP文件的最佳位置。我把它们放在了我所有的小树枝文件所在的同一个文件夹中,将名称改为read tweets.php.twig,甚至在web文件夹中找到了它们。当我试图将该文件包含在需要Twitter提要的twig文件中时,它会出现一个错误,表示找不到该文件 我的想法正确吗,还是必须将PHP转换成一个小树枝文

我正试图在一个Symfony2项目中插入一个最新的tweets“widget”。我找到了一个用PHP编写的理想脚本,它可以完美地完成这项工作

但是,我不知道在Symfony2项目中放置第三方PHP文件的最佳位置。我把它们放在了我所有的小树枝文件所在的同一个文件夹中,将名称改为read tweets.php.twig,甚至在web文件夹中找到了它们。当我试图将该文件包含在需要Twitter提要的twig文件中时,它会出现一个错误,表示找不到该文件


我的想法正确吗,还是必须将PHP转换成一个小树枝文件或将PHP脚本写入控制器?

我认为推荐的方法是创建一个Symfony2捆绑包,封装推特小部件的所有逻辑。然后调用bundle控制器并将响应传递给twig模板

如果这太复杂了,或者您想要更快更脏的东西,那么您可以创建一个类似TweetWidgetController.php的控制器,并将代码作为一个类似widgetAction的操作放入其中。只需确保在Symfony响应对象中返回tweet小部件输出

然后从您的主控制器-您可以执行以下操作

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

return $this->render('YourBundle:yourtemplate.html.twig',array('widget' => $widget->getContent()));
现在,在您的细枝模板中,您可以将其放置在任何您想要的位置,方法是将其引用为:

{{ widget }}

这个答案是正确的(+1);)-据我所知,第三方代码应放在供应商目录中(与所有其他“供应商”一样)。我想创建一个bundle是很好的,但是对于这样一个小的复杂度,可能会有额外的开销。你会推荐什么其他的方法呢?有没有更简单、更具成本效益的方法?