Phalcon-views
提供:Dev Guides
ファルコン-ビュー
ビューは、エンドユーザーに提示される情報です。 ビューは、適切な応答が表示されるWebページと見なすことができます。 応答は、モデルと対話するコントローラーを介して受信されます。
特にPhalconでは、ビューはVoltコード、PHP、およびHTMLで構成されています。 ボルトモードに入るには、一連の特別な区切り文字を使用できます。 \ {%… %} は、forループなどのステートメントの実行または値の割り当てに使用され、 \ {\ {… }} は、式の結果をテンプレートに出力します。
Phalconのビューは基本的に2つのタイプに分類されます-
- Volt
- phtml
Volt
以下は、前の章でプロジェクト demo1 用に作成した出力のスクリーンショットです。
この出力は、ファイル views/index/index.volt を使用して実現されます。
Voltファイルの機能
- これはC言語で書かれたテンプレートであり、他の言語に比べてかなり高速です。
- 高度に統合されたコンポーネントセットが含まれており、Phalconで非常に有益です。
- また、スタンドアロンコンポーネントとしても使用できます。
- Voltは純粋なPHPコードにコンパイルされます。
以下は、すべてのプロジェクトでデフォルトでロードされる index.volt のコードです。
<!--<div class = "page-header">
<h1>Congratulations!</h1>
</div>-->
<p>This is my first web application in Phalcon </p>
<!--<p>You're now flying with Phalcon. Great things are about to happen!</p>
<p>This page is located at <code>views/index/index.volt</code></p>-->
階層的なレンダリング
Phalconのビューは階層レンダリングをサポートし、 Phalcon \ Mvc \ View がデフォルトのレンダリングコンポーネントとして使用されます。 このコンポーネントは、テンプレート言語としてCを使用するボルトファイルと比較して、テンプレートエンジンとしてPHPを使用します。
これらのビューには .phtml 拡張子が必要です。 指定されたプロジェクトのビューのデフォルトディレクトリは、次の3つのファイルで構成されています-
- アクションビュー-このビューは、特定のアクションを実行するために呼び出されます。 「show」アクションが実行されると呼び出されます。
- コントローラーレイアウト-このビューはレイアウトフォルダー内にあります。 たとえば、 C:\ xampp \ htdocs \ demo \ app \ views \ layouts 。 適切なコントローラーに関連付けられたメソッド呼び出しを呼び出します。 レイアウトに実装されたコードは、必要に応じて実装されます。
- メインレイアウト-このレイアウトビューはメインアクションを呼び出し、Webアプリケーション内のすべてのコントローラーまたはアクションに対して表示されます。
.voltファイルと.phtmlファイルの違い
.volt | .phtml |
---|---|
.volt extension is used when the template engine set up in the application is written in C | .phtml is used when the template engine is PHP itself |
It can be used as a stand-alone component | It cannot be used as a stand-alone component |
Volt views are compiled to PHP code | phtml files itself includes PHP code so there is no need of compilation in Phalcon framework |
変数
変数は、「set」を使用してテンプレートで割り当ておよび変更されます。
配列を宣言する
{% set fruits = ['Apple', 'Banana', 'Orange'] %}
文字列を宣言する
{% set name = ”John Kennedy” %}
コメント
*\ {#...を使用して、テンプレートにコメントを追加することもできます。 #}* 区切り文字。 それらの内部のすべてのテキストは、最終出力では無視されます。
{# note: this is a comment
{% set price = 100; %}
#}
例
{% set fruits = ['Apple', 'Banana', 'Orange'] %}
<h1>Fruits</h1>
<ul>
{% for fruit in fruits %}
<li>{{ fruit|e }}</li>
{% endfor %}
</ul>
{% set robots = ['Voltron', 'Astro Boy', 'Terminator', 'C3PO'] %}
<ul>
{% for robot in robots %}
<li>{{ robot }}</li>
{% endfor %}
</ul>
出力
コードは、次の出力画面を生成します-