LoginSignup
0
0

More than 1 year has passed since last update.

Phalcon(Volt)についてメモ(if、for、include)

Last updated at Posted at 2022-11-20

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側の実装にしっかり着手したらそちらも整理したい。

関連サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0