5

このようなプロジェクトの Twig 拡張機能を作成できます

class Functions extends Twig_Extension{
    public function getName(){return 'foobar';}

    public function getFunctions() {
        return array(
            'loremipsum' => new \Twig_SimpleFunction('asset', 'Functions::loremipsum')
        );

    public static function loremipsum($foo) {
        return $foo;
    }
}

これは機能しますが、コンストラクターを使用して、一部の関数で必要なデータを挿入したいと考えています。

'asset'inを使用するだけTwig_SimpleFunctionで、PHP は関数を実行しようとします。loremipsum()

4

2 に答える 2

12
public function getFunctions() {
    return array(
        'foo' => new Twig_Function_Method($this, 'bar');
    );
}

public function bar($baz) {
    return $this->foo . $baz;
}

extend Twig_Functionテンプレート関数を指定するさまざまな方法については、さまざまなクラスをすべて見てください。

新しいの場合、コンストラクターへの2番目の引数としてTwig_SimpleFunction任意の種類を渡すことができるようです:callable

new Twig_SimpleFunction('foo', array($this, 'bar'))
于 2013-12-18T15:38:14.430 に答える