Phalcon 视图


视图是呈现给用户的信息,一个视图可以被认为是一个带有响应的网页,通过与模型交互的控制器接收响应。

特别是在 Phalcon 中,视图由 Volt 代码、PHP 和 HTML 组成。一组特殊的分隔符可用于进入 Volt 模式。{% ... %}用于执行诸如 for 循环或赋值之类的语句,以及{{ ... }}将表达式的结果输出到模板。

Phalcon 中的视图基本上分为两种:

  • Volt

  • phtml

Volt


以下是我们在前一章为项目demo1创建的输出截图:

Views

此输出是在文件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被用作默认的渲染组件。该组件使用PHP作为模板引擎,而Volt文件使用C作为模板语言:

这些视图的扩展名应该是.phtml,项目视图的默认目录由以下三个文件组成:

  • 动作视图(Action view):这个视图被调用来执行一个特定的动作,当执行“show”动作时调用它。

  • 控制器布局(Controller layout: 该视图存在于 layouts 文件夹中。例如,C:\xampp\htdocs\demo\app\views\layouts.它调用与相应控制器关联的方法调用。在布局中实现的代码将在需要时实现。这个视图存在于layouts文件夹内,例如C:\xampp\htdocs\demo\app\views\layouts,它由控制器相关的方法调用,布局中的代码将在需要时运行。

  • 主要布局(Main layout): 此布局视图将调用主操作,并将为 Web 应用程序中的每个控制器或操作显示。

.volt 和 .phtml 文件之间的区别


.volt.phtml
当应用程序中设置的模板引擎是用 C 编写的时,使用 .volt 扩展名.phtml 当模板引擎是 PHP 本身时使用
它可以用作独立组件不能作为独立组件使用
Volt 视图被编译为 PHP 代码phtml 文件本身包含 PHP 代码,因此不需要在 Phalcon 框架中进行编译

变量


使用“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>

输出


输出如下所示:

Output Screen