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>

出力

コードは、次の出力画面を生成します-

出力画面