fyre / view
一个模板渲染库。
Requires
- fyre/csp: ^2.0
- fyre/csrf: ^3.0
- fyre/formatter: ^3.0
- fyre/formbuilder: ^2.0
- fyre/htmlhelper: ^2.0
- fyre/lang: ^3.0
- fyre/orm: ^7.0
- fyre/path: ^2.0
- fyre/router: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreView 是一个免费、开源的 PHP 模板渲染库。
目录
安装
使用 Composer
composer require fyre/view
在 PHP 中
use Fyre\View\View;
视图
$request
是一个 ServerRequest。
$view = new View($request);
获取数据
获取视图数据。
$data = $view->getData();
获取布局
获取布局。
$layout = $view->getLayout();
获取请求
获取 ServerRequest。
$request = $view->getRequest();
加载助手
加载一个 助手。
$name
是一个表示助手名称的字符串。$options
是一个包含助手选项的数组。
$helper = $view->loadHelper($name, $options);
渲染
渲染一个模板。
$file
是一个表示模板文件的字符串。
echo $view->render($file);
模板文件必须以 .php
扩展名结尾,并且必须存在于定义路径之一中。
设置数据
设置视图数据。
$data
是一个包含传递给模板的数据的数组。
$view->setData($data);
设置布局
设置布局。
$layout
是一个表示布局文件的字符串。
$view->setLayout($layout);
布局文件必须以 .php
扩展名结尾,并且必须存在于定义路径之一的 "layouts" 文件夹中。
布局
您可以在渲染视图时使用布局,通过在定义路径之一的 "layouts" 文件夹中放置一个 default.php
文件。您可以创建多个布局,并使用上面的 setLayout
方法指定要使用的布局。
渲染的内容通过 $this
的 content
方法传递给布局文件。任何其他定义的数据也会传递给布局。
$this->content();
单元格
可以通过扩展 \Fyre\View\Cell
并在类名后添加 "Cell" 后缀来创建自定义单元格。
单元格
渲染一个 Cell。
$cell
是一个字符串,可以表示单元格名称(实现display
方法)或以 "Cell::method" 格式。$args
是一个参数数组,将传递给单元格方法,默认为 []。
echo $this->cell($cell, $args);
元素
元素
渲染一个元素。
$file
是一个表示元素文件的字符串。$data
是一个包含传递给元素的数据的数组,默认为 []。
echo $this->element($file, $data);
元素文件必须以 .php
扩展名结尾,并且必须存在于定义路径之一的 "elements" 文件夹中。
块
追加
将内容追加到块中。
$name
是一个表示块名称的字符串。
$this->append($name);
直到块结束之前的任何输出都将追加到块中。
分配
将内容分配到块中。
$name
是一个表示块名称的字符串。$content
是一个表示内容的字符串。
$this->assign($name, $content);
结束
结束一个块。
$this->end();
获取
获取一个块。
$name
是一个表示块名称的字符串。$default
是一个表示默认值的字符串,默认为 ""。
$block = $this->fetch($name, $default);
前缀
将内容前缀到块中。
$name
是一个表示块名称的字符串。
$this->prepend($name);
直到块结束之前的任何输出都将前缀到块中。
重置
重置块的内容。
$name
是一个表示块名称的字符串。
$this->reset($name);
开始
$name
是一个表示块名称的字符串。
开始块的内容。
$this->start($name);
模板
use Fyre\View\Template;
布局、模板和元素通过搜索可用路径来加载。
添加路径
添加用于加载模板的路径。
$path
是表示路径的字符串。
Template::addPath($path);
获取路径
获取路径。
$paths = Template::getPaths();
定位
在路径中找到一个文件。
$file
是表示文件名的字符串。$folder
是表示文件夹名的字符串,默认为 ""。
$filePath = Template::findFile($file, $folder);
规范化
规范模板文件名。
$string
是表示文件名的字符串。
$normalized = Template::normalize($string);
移除路径
$path
是表示路径的字符串。
$removed = Template::removePath($path);
单元格注册表
use Fyre\View\CellRegistry;
添加命名空间
为自动加载单元格添加命名空间。
$namespace
是表示命名空间的字符串。
CellRegistry::addNamespace($namespace);
清除
清除所有命名空间和单元格。
CellRegistry::clear();
查找
查找单元格类。
$name
是表示单元格名称的字符串。
$className = CellRegistry::find($name);
获取命名空间
获取命名空间。
$namespaces = CellRegistry::getNamespaces();
有命名空间
检查命名空间是否存在。
$namespace
是表示命名空间的字符串。
$hasNamespace = CellRegistry::hasNamespace($namespace);
加载
加载单元格。
$name
是表示单元格名称的字符串。$view
是 视图。$options
是包含单元格选项的数组。
$cell = CellRegistry::load($name, $view, $options);
移除命名空间
移除命名空间。
$namespace
是表示命名空间的字符串。
$removed = CellRegistry::removeNamespace($namespace);
助手注册表
use Fyre\View\HelperRegistry;
添加命名空间
为自动加载助手添加命名空间。
$namespace
是表示命名空间的字符串。
HelperRegistry::addNamespace($namespace);
清除
清除所有命名空间和助手。
HelperRegistry::clear();
查找
查找助手类。
$name
是一个表示助手名称的字符串。
$className = HelperRegistry::find($name);
获取命名空间
获取命名空间。
$namespaces = HelperRegistry::getNamespaces();
有命名空间
检查命名空间是否存在。
$namespace
是表示命名空间的字符串。
$hasNamespace = HelperRegistry::hasNamespace($namespace);
加载
加载助手。
$name
是一个表示助手名称的字符串。$view
是 视图。$options
是一个包含助手选项的数组。
$helper = HelperRegistry::load($name, $view, $options);
移除命名空间
移除命名空间。
$namespace
是表示命名空间的字符串。
$removed = HelperRegistry::removeNamespace($namespace);
助手
助手可以在模板或元素中使用类名作为 $this
的属性来使用。
$helper = $this->MyHelper;
或者,您可以使用 视图 的 loadHelper
方法加载带有配置选项的助手。
可以通过扩展 \Fyre\View\Helper
、在类名后缀 "Helper" 并确保 __construct
方法接受 视图 作为参数来创建自定义助手。
获取配置
获取配置选项。
$config = $helper->getConfig();
获取视图
获取 视图。
$view = $helper->getView();
CSP
CSP 助手允许轻松生成非ces,并自动将其添加到您的 CSP 策略中。
脚本非ces
生成脚本非ces。
$nonce = $this->CSP->scriptNonce();
样式非ces
生成样式非ces。
$nonce = $this->CSP->styleNonce();
表单
按钮
渲染按钮元素。
$content
是表示按钮内容的字符串。$options
是用于渲染按钮的选项数组。
$button = $this->Form->button($content, $options);
默认情况下,按钮内容将被 HTML 转义。要禁用此操作,请在 options
数组中将 escape
值设置为 false。
所有其他 options
将作为按钮元素的属性创建。
关闭
渲染表单关闭标签。
$close = $this->Form->close();
字段集关闭
渲染字段集关闭标签。
$fieldsetClose = $this->Form->fieldsetClose();
字段集打开
渲染字段集打开标签。
$options
是用于渲染字段集的选项数组。
$fieldset = $this->Form->fieldsetOpen($options);
所有 options
将作为字段集元素的属性创建。
输入
渲染输入元素。
$key
是表示字段键的字符串,使用点表示法。$options
是用于渲染标签的选项数组。
$input = $this->Form->input($key, $options);
所有 options
将作为输入元素的属性创建。
- 默认的
id
和name
属性将转换为字段键。 - 输入
type
和其他默认属性将由 TableSchema 和 模型验证 确定。 - 默认值将从 服务器请求 的
$_POST
数据或表单上下文中检索。- 如果在 实体 上下文中打开表单,则还将使用 实体 和 TableSchema。
- 可以使用
options
键指定选择选项。 - 复选框和单选框可以通过将
checked
选项设置为true来标记为选中。 - 多选下拉菜单(默认)会渲染一个值为空的隐藏字段。可以通过将
hiddenField
选项设置为false来禁用此功能。 - 复选框(默认)会渲染一个值为"0"的隐藏字段。可以通过将
hiddenField
选项设置为false来禁用此功能。
您还可以使用以下辅助方法来生成特定类型的输入字段。
$input = $this->Form->checkbox($key, $options); $input = $this->Form->color($key, $options); $input = $this->Form->date($key, $options); $input = $this->Form->datetime($key, $options); $input = $this->Form->email($key, $options); $input = $this->Form->file($key, $options); $input = $this->Form->hidden($key, $options); $input = $this->Form->image($key, $options); $input = $this->Form->month($key, $options); $input = $this->Form->number($key, $options); $input = $this->Form->password($key, $options); $input = $this->Form->radio($key, $options); $input = $this->Form->range($key, $options); $input = $this->Form->reset($key, $options); $input = $this->Form->search($key, $options); $input = $this->Form->select($key, $options); $input = $this->Form->selectMulti($key, $options); $input = $this->Form->submit($key, $options); $input = $this->Form->tel($key, $options); $input = $this->Form->text($key, $options); $input = $this->Form->time($key, $options); $input = $this->Form->url($key, $options); $input = $this->Form->week($key, $options);
标签
渲染标签元素。
$key
是一个表示字段键的字符串。$options
是用于渲染标签的选项数组。
$label = $this->Form->label($key, $options);
标签文本将从Lang中通过Field.{field_name}
键或从字段名转换得到。您也可以通过设置text
选项来自定义标签文本。
默认情况下,标签内容将进行HTML转义。要禁用此功能,在options
数组中将escape
值设置为false。
所有其他options
将作为属性创建在标签元素上。默认的for
属性将从字段键转换而来。
说明
渲染说明元素。
$content
是一个表示说明内容的字符串。$options
是一个用于渲染说明的选项数组。
$legend = $this->Form->legend($content, $options);
默认情况下,说明内容将进行HTML转义。要禁用此功能,在options
数组中将escape
值设置为false。
所有其他options
将作为属性创建在说明元素上。
打开
渲染表单打开标签。
$item
是一个表示表单上下文的实体或其他(支持的)对象,默认为null$options
是一个用于渲染表单的选项数组。
$open = $this->Form->open($item, $options);
所有options
将作为属性创建在表单元素上。
打开多部分
渲染多部分表单打开标签。
$item
是一个表示表单上下文的数组或对象,默认为null$options
是一个用于渲染表单的选项数组。
$open = $this->Form->openMultipart($item, $options);
所有options
将作为属性创建在表单元素上。
格式
格式助手为格式化器方法提供了一个方便的包装器。
URL
URL助手提供了生成路由器链接的方法。
链接
为目的地生成一个锚点链接。
$content
是一个表示链接内容的字符串。$options
是一个包含选项的数组。escape
是一个布尔值,指示是否转义链接内容,默认为true。fullBase
是一个布尔值,指示是否使用完整的基URI,默认为false。
$link = $this->Url->link($content, $options);
路径
为相对路径生成URL。
$path
是一个表示文件路径的字符串。$options
是一个包含选项的数组。fullBase
是一个布尔值,指示是否使用完整的基URI,默认为false。
$url = $this->Url->path($path, $options);
到
为命名路由生成URL。
$name
是一个表示路由别名的字符串。$arguments
是一个包含路由参数的数组。?
是一个包含路由查询参数的数组。#
是一个表示URI片段组件的字符串。
$options
是一个包含选项的数组。fullBase
是一个布尔值,指示是否使用完整的基URI,默认为false。
$url = $this->Url->to($destination, $options);