我有一個基於Symfony 2的基於樹枝的項目。由於Symfony 2的本質,使用了命名空間。因此,我無法在名稱空間之外提供全局函數。我不能在Twig_Extension類中使用Twig_SimpleFilter的內部函數
這是我的嫩枝擴展類:
<?php
namespace Web\MailBundle\Twig;
use Twig_Extension, Twig_SimpleFilter;
class Twig extends Twig_Extension
{
public function getName()
{
return 'twig_extension';
}
public function getFilters() {
return array(
'shortKey' => new Twig_SimpleFilter('shortKey', 'myCustomFilterFunction')
);
}
public function myCustomFilterFunction() {
//code here...
}
結果: FatalErrorException: Error: Call to undefined function myCustomFilterFunction()
爲什麼: 因爲,樹枝也試圖找到這個功能,但它是一個內類。如果我將它移動到課堂之外,這次我要面對命名空間。因爲它是命名空間。
研究: 我挖掘了代碼。 Twig做同樣的事情。他們在課堂外編寫過濾器和函數。但由於命名空間,我無法做到這一點。如果可能,我想通過使用適當的解決方案來做到這一點。如果失敗;我會帶着它創建無命名另一個PHP文件,它包含該項目的最新解決方案...
-
我怎麼熬過來的? Twig過濾器已被棄用,我們必須使用SimpleFilter方法。但我無法完成。
我怎麼錯過了「超載」章節的文件:(。謝謝你叫醒我! – xangr