如何将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 }}
这个答案产量在正确的方向(+ 1);) - 据我的理解,第三方代码应放置在供应商目录(像所有其他“供应商”)。我想 - 创建一个捆绑包是好的 - 但是对于这样的复杂性来说,可能会产生开销 – madflow
你会推荐madflow的其他方法吗?有没有更简单,更具成本效益的方法? – mickburkejnr