Twigに修飾子を追加する

さきほど紹介したTwigですが、Smartyのように、変数を出力するときに何かしらの処理を加えて出力することができます。
例えば、

{{ 'TWIG'|lower }}

このように書けば、小文字に変換して表示できます。
この lower の部分を自分で自作する方法について書きます。

と言ってもとても簡単でした。参考にしたのはこちらのページ。

今回は数字に対し、3桁区切りでカンマを入れる修飾子 number を作ってみます。
3桁区切りでカンマを入れる関数は、PHPには標準で搭載されています。number_format() という関数です。
まずこれを使って、こういう関数を作りました。

function twig_number_format($str) {
  return (is_int($str)) ? number_format($str) : $str;
}

次に、これを修飾子として登録します。

$twig->addFilter('number', new Twig_Filter_Function('twig_number_format'));

これで完了です。

{{ '1234567'|number }}

と書いて表示させてみましょう。

ぶっちゃけ、これだけでもOKです。

$twig->addFilter('number', new Twig_Filter_Function('number_format'));

コメントを残す