WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

【Symfony2】Twigで数値の切り捨て、切り上げ、四捨五入、金額表示するカスタムTwig拡張を作ってみた

この記事は約1分30秒で読めます

symfony2
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

ウェブシステムを作る上で、数値の切り捨て切り上げ四捨五入金額の円マーク付き3桁区切りで表示することはよくあると思います。
PHPで処理してTwigに渡してあげればいいんでしょうけど・・・Twigのフィルターからできた方が簡単ですよね?

ただ、私にはググる能力がなくて、数値を四捨五入するフィルターを見つけることができませんでした・・・。

見つからないものはしょうがないので、自作のカスタムTwig拡張を作ってみることにしました。
「自作のTwig拡張を書く前にTwigの公式拡張レポジトリを見てください」と書かれてありましたが、私は残念なことに英語が読めないのでやっぱり自分で作ることにします。

number_formatを使って金額表示をする記事を書きましたが、¥を書くのが面倒だと思ったので、ついでに円マーク記号付きの3桁区切りの金額表示フィルターも作っちゃうことにします。

【Symfony2】Twigで数値を3桁カンマ区切りの金額を表示する方法|ゆとりっち

Twig拡張クラスの作成

まずはカスタムの機能を作るためにtwig拡張をクラスを作成します。

バンドル直下にTwigディレクトリを作成しました。
ファイル名はUtilExtension.phpで作りました。

echoの部分が気に入らないのですが、単純に文字列結合してreturnするとそのまま表示されちゃうので・・・。良い方法ありましたらコメントにてご教示ください。。

また、フィルタだけでなく、カスタムの関数を作ったり、グローバル変数を登録したりすることもできます。

Twig拡張をサービスとして登録

UtilExtensionTwig拡張クラスをサービスコンテナに登録しましょう。
config.ymlに追記するだけです。

カスタムTwig拡張を使い方

カスタムTwig拡張の機能は通常のフィルターとまったく同じように使えます。
詳しくはTwig extensions documentationに書かれています。

参考サイト

Symfony2おすすめ書籍

関連記事

  1. Symfony2 Routing Annotation
  2. symfony2
  3. symfony2
  4. Symfony2 blogチュートリアル 04 バンドルの作成
  5. symfony2
  6. Symfony2 Twigでログイン状態を判定する

コメントをお待ちしております

PR

カテゴリー