fyre/view

一个模板渲染库。

v7.1.0 2024-08-14 13:36 UTC

README

FyreView 是一个免费、开源的 PHP 模板渲染库。

目录

安装

使用 Composer

composer require fyre/view

在 PHP 中

use Fyre\View\View;

视图

$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 方法指定要使用的布局。

渲染的内容通过 $thiscontent 方法传递给布局文件。任何其他定义的数据也会传递给布局。

$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 将作为输入元素的属性创建。

  • 默认的 idname 属性将转换为字段键。
  • 输入 type 和其他默认属性将由 TableSchema模型验证 确定。
  • 默认值将从 服务器请求$_POST 数据或表单上下文中检索。
  • 可以使用 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);