My Life

映画、音楽、プログラミングTipsのブログ

プログラミング

[PHP]解説!Mustache【ANCHORED DOT pragma】の使い方

投稿日:7月 1, 2018 更新日:

PHP用Mustacheの拡張機能 ANCHORED DOT pragma についてまとめます。

ANCHORED DOT pragmaで何が出来るのか?

他階層に同じ名前の値があっても無視され、今いる階層内だけ参照する様になります。
そのため、他階層の同名の値を意図せず使ってしまう事を防げます。

  • 使い時
    同名の値を多く定義している場合に便利です。

使い方

  • 出力時の値を{{ .出力したい値の名前 }}とします。
    名前の前にドット(.)をつけるのがミソです。

アンカーリンクをリスト形式で出力するケースを例に解説します。

リンク用のタイトルが無い場合、URLをそのままタイトルとして出力したいですが、
ANCHORED DOTを使わない場合、そうなってくれません。↓

出力結果:

1つ目のli要素には、リンク用のタイトルを渡していません。

そのため「https://mylife111.com/php_mustache_blocks-pragma/」と出てほしいところですが、mustacheの仕組み上、別階層の'title' => 'Mustache links'を取得している為、「MyLife リンク集」と出力されてしまいます。

ANCHORED DOT pragmaを使うとこれを防げます。

出力結果:

他階層のtitleは無視されるようになり、意図したとおりURLが出力されます

使い方【応用編】

その他のmustache記法とも併用できます。

「.」で下の階層にアクセスする場合↓

出力結果:

注意

①出力用の値に全て別の名前を付ければ、ANCHORED DOTを使わずとも意図した動きが実現できます。

links配下のタイトルの名称をlink_titleと命名します。

出力結果:

ANCHORED DOTのイメージ(蛇足)

恐らく、ANCHORED DOTは港をイメージしていると思われます。

  • 今いる階層 = 今立ち寄っている
  • 今いる階層の値 = 今立ち寄っているにある船
  • 階層 = 別の
  • 階層の値 = 別のにある船

みたいなイメージかと。

「ANCHORED DOT」=「今いる階層に値を紐付けるための機能」=「今立ち寄っている港に停泊させるためのイカリ」みたいな感じかなと思います。

Anchor1

まとめ

BLOCKS pragmaと比較すると、やり様によっては使わなくても問題ない機能かなと思いました。

pragma使用時の注意として、PHP用Mustacheの拡張機能なので、PHP用以外のmustacheには実装されていないと思われます(未調査)

 

参考文献



-プログラミング
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

関連記事

テキストファイル画像1

【PHP】CSVファイルからINSERT文を生成する

こんにちは。tomoです。 仕事でGoogleスプレッドシートデータをDBに登録しなければいけない事があり、 スプレッドシート情報をCSV形式に変換したデータからINSERT文を生成するプログラムを作 …

ファイル画像

【PHP】大量のファイル名を一括リネームする

仕事で大量ファイルをリネームしなければいけない時がありました。その際の行った事をメモ程度に記載します。 目次1 ロジック2 まとめ ロジック [crayon-5df60944163e102889044 …

[PHP]解説!Mustache【BLOCKS pragma】の使い方

PHP用Mustacheの拡張機能 BLOCKS pragmaについてまとめます。 目次1 Mustacheとは(簡単に)1.1 メリット1.2 デメリット2 BLOCKS pragmaで何が出来るの …

テキストファイル画像1

【PowerShell】WinMergeで複数ファイルをコマンドラインから比較する

ファイルの差分を見たい時、WinMergeは便利なツールです。 マウス操作でも問題ありませんが、数十件、数百件という大量ファイルの差分チェックは、スクリプトにお任せしましょう。 目次1 やること2 用 …

[PHP]解説!Mustache【FILTERS pragma】の使い方

PHP用Mustacheの拡張機能 FILTERS pragma についてまとめます。 目次1 FILTERS pragmaで何が出来るのか?2 使い方3 注意4 FILTERS pragmaとLam …