2016-04-13 8 views
1

私はtwigのドキュメントを読んでいますが、私はカスタム関数とフィルタについて少し混乱しています。カスタム関数を追加する方法を理解しています。しかし、私はいくつかのパラメータを受け入れる関数を書く方法や、いくつかのオプションのパラメータも理解できません。パラメータを持つTwigカスタム関数

たとえば、sqareという名前の関数の疑似コードは次のとおりです。

$twig = new Twig_Environment($loader); 
$function = new Twig_SimpleFunction('square', function() { 
    if param2 present? 
    return param1*param2; 
    else 
    return param1; 
}); 
$twig->addFunction($function); 

ここで私が望むのは、param1はデフォルト値1を持ち、param2はオプションでなければなりません。 square関数は、2つのパラメータの積を返します。私はまた、ユーザーが2番目のパラメータを渡さない場合、param1が返される、つまり最初のパラメータが返されることを望みます。これをどのように実装できますか?また、私は小枝テンプレートの関数を{{ square(5, 10) }}と呼びますか?

答えて

2

closureにパラメータを定義する必要があります。

Only one param : {{ square(5) }} 
Two params : {{ square(5, 2) }} 
: 小枝はそれに応じて

$function = new Twig_SimpleFunction('square', function ($param1, $param2 = null) { 
    return isset($param2) ? $param1 * $param2 : $param1; 
}); 

が次にあなたがTwigでこの関数を呼び出すパラメータを渡します

関連する問題