私はSymfony 2を使用したtwigベースのプロジェクトを持っています.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()
なぜクラス。今度はクラスの外に移動すると、私は名前空間に直面します。名前空間であるためです。
研究: 私はコードをdiggします。小枝は同じことをする。クラス外でフィルタや関数を記述します。しかし、名前空間のために私はそれを行うことはできません。可能であれば、私は適切なソリューションを使用してそれを行うwanto。それが失敗した場合。私はそれを乗り越えることができますどのように
- 私は
...名前空間せずに別のphpファイルを作成している最新のソリューションに付属し、プロジェクトに含まれていますか? Twig Filterは非推奨で、SimpleFilterメソッドを使用する必要があります。しかし、私はそれを完了できませんでした。
どのように私はドキュメントの "オーバーロード"の章を見逃しましたか? – xangr