2013-01-09 155 views
3

我需要在Silex框架中爲Twig添加自定義過濾器。例如,我想這個功能適用於一些變量:Silex Twig的自定義過濾器

public function addExclamation($text) { 
    return $text.'!!!'; 
} 

而且在樹枝模板做這樣的事情:

{{ text|exclam }} 

閱讀http://twig.sensiolabs.org/doc/advanced.html後,我創建「Project_Twig_Extension.php」:

class Project_Twig_Extension extends Twig_Extension 
{ 
    public function getName() 
    { 
     return 'project'; 
    } 

    public function getFilters() 
    { 
     return array(
      new Twig_SimpleFilter('exclam', 'addExclamation'), 
     ); 
    } 

    public function addExclamation($text) { 
     return $text.'!!!'; 
    } 
} 

但我不能低調,我需要把這個文件,我怎麼能註冊這個過濾器在Silex的「index.php」。

你能給我一步一步的指導嗎?在Twig addFilter using Silex?中描述的方法不起作用。

+0

你是什麼意思的「不工作」?你有錯誤信息嗎? – Maerlyn

+0

我創建'InsolisExtension.php'並把它放在'W:\ home \ example.com \ Insolis \ Twig'中,之後我在'index.php'註冊代碼中寫入。錯誤:致命錯誤:在第39行的W:\ home \ example.com \ index.php中找不到'Insolis \ Twig \ InsolisExtension'類。文件夾'vendor'與'index.php'處於同一級別。 – inetbug

+0

您忘記在自動加載器中註冊Insolis名稱空間。 – Maerlyn

回答