2012-11-17 82 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部分,以瞭解枝可以擴展的所有方法。