読者です 読者をやめる 読者になる 読者になる

生涯未熟

プログラミングをちょこちょこと。

LaravelのBladeテンプレートを拡張する方法

smartyの{$smarty.now}みたいな形で現在日時を表示する方法はbladeには無いのかなーと思って、
調べてみるとなかったので作ってみましたー!

やり方

とりあえずプロジェクトディレクトリ内のどこかにファイルを作ります。
今回はblade_extensions.phpというファイル名で、appの直下に作成しましたー。


で、このファイルの中に拡張したい機能を書いていきます。
今回は和暦年・月・日をそれぞれ出力する機能が欲しかったので、それらについてツラツラ記述していきます。

拡張機能の実装



gist0676f256a357967a118d



これで大まかな実装は終わりです!
実装自体はLaravelの公式にも書いてある通りで、createMatcherを使い拡張機能名を設定。
その後、その名前をどのようなPHPコードに置き換えるかを書いていってます。

なので、実装のテンプレートとしては以下の様な形になります。


gistd1e48ebd6ac9b1d044ee


blade_extensions.phpのパス指定


次に、app/start/global.phpを編集します。
単純に先ほど作成したblade_extensions.phpのパスを指定するだけです。
以下のコードをglobal.phpの好きなとこに追記してください。


gist7b4b2db37bc7e36f81df


実際の使い方

これで使えるまでの基本的な設定類は終わりました!
あとは使うだけです。

使い方は使いたいbladeファイル内で以下のように書くだけです。



gist3afc8381cf376795cbe9


これで和暦年・月・日がそれぞれ表示されます。

他にもbladeテンプレートには無い機能で追加したいって機能がある場合は、
どんどん追加していってみてください!


PHPエンジニア養成読本 〔現場で役立つイマドキ開発ノウハウ満載! 〕 (Software Design plus)
新原 雅司 原田 康生 小山 哲志 田中 久輝 保科 一成 大村 創太郎 増永 玲
技術評論社
売り上げランキング: 112,833