我正在尝试将我自己的扩展添加到 Twig。基本用法是有效的,但我想要的是我可以使用供应商前缀调用我的函数。
示例:LinkViewHelper:
class LinkViewHelper extends \Twig_Extension {
public function getFunctions()
{
return array(
'link' => new \Twig_Filter_Method(
$this,
'link',
array('is_safe' => array('html'))
)
);
}
public function link($text, $uri, array $additionalParams = array(), array $aTagParams = array(), $external=false)
{
$uri = $this->uri($uri, $additionalParams, $external);
// Some additional parsing
return $url; // will be somehting like <a href="http://www.google.de" target="_blank">Go to Google now!</a>
}
public function uri($uri, array $additionalParams = array(), $external = false)
{
// Some parsing goes here
return $uri; // will be something like http://www.google.com/
}
/**
* Returns the name of the extension.
*
* @return string The extension name
*/
public function getName()
{
return 'url';
}
}
加载我的引导程序:
$this->environment->addExtension(new LinkViewHelper());
现在我可以调用该函数,{{ link }}
但我想要的是调用它{{ url.link }}
。我怎样才能做到这一点?
问候,头孢呋辛
编辑:说真的,因为你不理解这个问题而对一个问题投反对票根本没有用:)