我的 Symfony 项目中有一个 Twig 扩展,它呈现一个 twitter 小部件。目前,在我的扩展中,我有这个:
public function twitter($handle, $number = 5)
{
return "<div data-tweet-row=\"<div><a href='http://twitter.com/{screen_name}/status/{id}'>{tweet}</a><span class='datetime'>{datetime}</span></div>\" data-twitter-header=\"<div class='header'><img src='https://api.twitter.com/1/users/profile_image?screen_name={screen_name}&size=normal' /><h4><a href='http://twitter.com/{screen_name}'>@{screen_name}</a></h4></div>\" id=\"twitter\"> </div><script>$('#twitter').biff_twitter({screen_name:'$handle',count:$number});</script>";
}
但是我真的不喜欢这个解决方案,我宁愿将 HTML 保存在下面views
,然后从我的扩展中加载文件。
我可以使用以下方法从扩展中访问容器:
private $container;
public function __construct(ContainerInterface $container){
$this->container = $container;
}
所以我需要类似的东西
$view_file = $this->container->get('...')->view('InternalSocialBundle:twitter_placeholder.html.twig')