2012-11-17 125 views
1

我想在小枝模板中使用php stripslashes函数,但这个函数不是标准的小枝函数,所以我必须将它作为扩展名添加到小枝中,但我在控制器内部试过这段代码,但它不工作:小枝内部的小枝模板

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Response; 
class XController extends Controller 
{ 

public function YAction($page) 
{ 
$twig=$this->get('twig'); 
$twig->addFunction('functionName', new Twig_Function_Function('someFunction')); 
... 

我需要一个使用语句的“Twig_Function_Function”类吗? 我在做这个错吗?

回答

4

如果你想在你的树枝模板中使用它,你不需要在你的控制器内进行任何添加或调用,请阅读文档的How to write a custom Twig Extension部分。

Basicaly,你需要创建一个Extension Class,延伸\Twig_Extension,那么你需要register it作为服务使用twig.extension标签。最后,您需要实施getFunctions()方法以添加自定义分枝功能。

但您的情况最好是添加一个过滤器,使用相同的逻辑,您还可以在扩展类中添加getFilters()方法,以便您可以指定自定义过滤器。

此外,请深入了解文档的Extending Twig部分,以了解枝可以扩展的所有方法。