- Phalcon 教程
- Phalcon - 主页
- Phalcon - 概述
- Phalcon - 环境设置
- Phalcon - 应用程序结构
- Phalcon - 功能
- Phalcon - 配置
- Phalcon - 控制器
- Phalcon - 模型
- Phalcon - 景观
- Phalcon - 路由
- Phalcon - 数据库连接
- Phalcon - 切换数据库
- Phalcon - 脚手架应用
- Phalcon - 查询语言
- Phalcon - 数据库迁移
- Phalcon - Cookie 管理
- Phalcon - 会话管理
- Phalcon - 多语言支持
- Phalcon - 资产管理
- Phalcon - 使用表单
- Phalcon - 对象文档映射器
- Phalcon - 安全功能
- Phalcon 有用资源
- Phalcon - 快速指南
- Phalcon - 有用资源
- Phalcon - 讨论
Phalcon - 景观
视图是呈现给最终用户的信息。视图可以被视为具有要显示的适当响应的网页。通过与模型交互的控制器接收响应。
具体来说,在 Phalcon 中,视图由 Volt 代码、PHP 和 HTML 组成。可以在 Volt 模式下输入一组特殊分隔符。{% ... %}用于执行诸如 for 循环或赋值之类的语句,而{{ ... }}将表达式的结果打印到模板。
Phalcon 中的视图基本上分为两种类型 -
- 伏特
- html
伏特
以下是我们在上一章中为项目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作为模板语言的volt文件相比,该组件使用PHP作为模板引擎。
这些视图应具有.phtml扩展名。给定项目的默认视图目录包含以下三个文件 -
操作视图- 调用此视图来执行特定操作。当执行“show”动作时调用它。
控制器布局- 此视图存在于布局文件夹内。例如,C:\xampp\htdocs\demo\app\views\layouts。它调用与适当控制器关联的方法调用。布局中实现的代码将在需要时实现。
主布局- 此布局视图将调用主操作,并将为 Web 应用程序中的每个控制器或操作显示。
.volt 和 .phtml 文件之间的区别
。伏特 | .phtml |
---|---|
当应用程序中设置的模板引擎是用 C 编写时,使用 .volt 扩展名 | 当模板引擎是 PHP 本身时使用 .phtml |
它可以用作独立组件 | 它不能作为独立组件使用 |
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>
输出
该代码将产生以下输出屏幕 -