Voltの構文でよく使うもの
if文
【使用例】
{% set fruit = 'lemon' %}
{% if fruit === 'apple' %}
<p>アップル</p>
{% elseif fruit === 'lemon'%}
<p>レモン</p>
{% else %}
<p>グレープ</p>
{% endif %}
【結果】
レモン
for文
【使用例】
{% set fruits = ['apple','grape','lemon'] %}
{% for key, fruit in fruits %}
<p>{{ key }}:{{ fruit }}</p>
{% endfor %}
【結果】
0 : apple
1 : grape
2 : lemon
ちなみにkey
はインデックスが必要なければ特になくてOK。
JavaScriptのfor...in
と同じような構文。
今のところif文、for文あれば大丈夫そう。
外部ファイルを読み込み
サイトの1ページの記述量が多い場合にはページ内のセクションごとにファイルを分けるなどしておくと、可読性がよく再利用や修正もしやすいですね。
また複数人で改修を加えた場合に、セクションで分けていればGitHubでコンフリクトなどもしづらいです。
【index.volt】
-- ヘッダー
{% include 'ファイルディレクトリ/ファイル名A.volt' %}
-- メイン
{% include 'ファイルディレクトリ/ファイル名B.volt' %}
-- フッター
{% include 'ファイルディレクトリ/ファイル名C.volt' %}
外部ファイル読み込み時に条件判定もやりたい
- with ['key':'value']でキーと値を渡して上げればよい
- ファイル呼び元
【index.volt】
{% include 'ファイルディレクトリ/ファイル名A' with ['key':'value'] %}
・記載例
{% include 'ファイルディレクトリ/ファイル名A' with ['color':'red'] %}
- ファイル呼び先(記載例)
【color.volt】
{% if color === 'red' %}
<図形の色を赤にする>
{% elseif color === 'blue' %}
<図形の色を青にする>
{% elseif color === 'yellow' %}
<図形の色を黄色にする>
{% endif %}
ファイル読み込みに関して「partial文」、「include文」もあるので軽く触れておく。
- partial
- Voltと他のテンプレートエンジンで作成されたテンプレートをインクルードすることができる
- 他のビューのコンテンツを動的に含めることができる、変数のような式を渡すことができます
- include
- コンパイルされたコンテンツをビューにコピーしてパフォーマンスを向上させる
- Voltで作成したテンプレートのみインクルードできる
用途に応じて使い分けが必要
メモを書いた背景
最近PhalconというPHPのフレームワークを使うプロジェクトに関わることになったため、
実務で使った構文をメモした。
ただし、フロント側の実装が現状メインでありPHP側の実装にはあまり触れてないため、
Voltについてがメイン(PHP側を触り始めたら書く)
Phalconとは
とはいえPhalconについても調べて簡単に書いておく。
公式のGitHubのREADME.mdを読むと
Phalcon is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resource consumption.
直訳すると、
PhalconはPHP言語のC拡張として提供されるオープンソースのWebフレームワークであり、高いパフォーマンスと低いリソース消費を提供します。
とある。
https://github.com/phalcon/cphalcon
バージョンとしては最近Phalcon5が発表され現時点でv5.1.1
まである。
現場でもPhalcon4→Phalcon5へのアップデートを行なっている。
自分は他タスクでバージョンアップには携われていないので落ち着いたら整理したい。
namespaceなどが大きく変わった模様
アップグレードについてのドキュメントは以下参照
https://docs.phalcon.io/5.0/ja-jp/upgrade
Voltについてのメモ
- そもそもVoltって?
- PHPのためにCで記述された、とても早いテンプレート言語
- 拡張子
.volt
ファイルにHTMLと混在し記述できる - Voltによるビューは純粋なPHPコードにコンパイルされるので、基本的には手でPHPコードを書く労力を節約することができる
Laravelでいうblade
にあたるものなのでLaravelでblade
を書いていればすんなり書けるかなと思います
今回はこのくらい。
PHP側の実装にしっかり着手したらそちらも整理したい。
関連サイト
-
公式GitHub
-
Phalcon5へのアップグレードについて
-
Voltテンプレートエンジン
-https://phalcon-docs-ja.readthedocs.io/ja/stable/reference/volt.html