类 ViewBuilder
提供了一个 API 用于迭代构建视图。
配置完视图并建立所有上下文后,你可以使用 build()
创建一个视图实例。
属性摘要
-
$_autoLayout protected
bool
是否启用自动布局。
-
$_className protected
string|null
要使用的视图类名。可以使用插件表示法、简称或完整命名空间类名。
-
$_helpers protected
array
要使用的辅助函数
-
$_layout protected
string|null
要渲染的布局名称。
-
$_layoutPath protected
string|null
用于构建视图的布局路径。
-
$_name protected
string|null
要使用的视图变量
-
$_options protected
array<string, mixed>
构造视图时使用的其他选项。
-
$_plugin protected
string|null
要使用的插件名称。
-
$_template protected
string|null
要渲染的模板文件。
-
$_templatePath protected
string|null
模板的子目录。
-
$_theme protected
string|null
要使用的主题名称。
-
$_vars protected
array<string, mixed>
视图变量
方法摘要
-
__serialize() public
序列化视图生成器对象时使用的魔法方法。
-
__unserialize() public
用于重建视图生成器对象的魔法方法。
-
_checkViewVars() protected
迭代哈希以清理和规范化。
-
addHelper() public
添加要使用的辅助函数,覆盖任何现有的同名辅助函数。
-
addHelpers() public
添加要使用的辅助函数,覆盖任何现有的同名辅助函数。
-
build() public
使用生成器中的数据,创建一个视图实例。
-
createFromArray() public
从序列化配置中配置一个视图生成器实例。
-
disableAutoLayout() public
关闭 CakePHP 的应用布局文件的传统模式。
-
enableAutoLayout() public
打开或关闭 CakePHP 的应用布局文件的传统模式。默认情况下打开。设置为关闭意味着布局不会自动应用于渲染的视图。
-
getClassName() public
获取视图类名。
-
getHelpers() public
获取要使用的辅助函数。
-
getLayout() public
获取要在其中渲染视图的布局文件名称。
-
getLayoutPath() public
获取布局文件的路径。
-
getName() public
获取视图名称。
-
getOption() public
获取视图选项。
-
getOptions() public
获取视图的其他选项。
-
getPlugin() public
获取要使用的插件名称。
-
getTemplate() public
获取要渲染的视图文件名称。指定的名称是
templates/<SubFolder>/
中的文件名,不包含 .php 扩展名。 -
getTemplatePath() public
获取模板文件的路径。
-
getTheme() public
获取要使用的视图主题。
-
getVar() public
获取视图变量
-
getVars() public
获取所有视图变量。
-
hasVar() public
检查视图变量是否已设置。
-
isAutoLayoutEnabled() public
返回是否启用了 CakePHP 的应用布局文件的传统模式。禁用意味着布局不会自动应用于渲染的视图。
-
jsonSerialize() public
将视图生成器对象序列化为可以原生序列化并重新使用以克隆此生成器实例的值。
-
setClassName() public
设置视图类名。
-
setHelpers() public
设置要使用的辅助函数,重置辅助函数配置。
-
setLayout() public
设置要渲染视图的布局文件的名称。指定的名称是
templates/layout/
中布局文件的名称,不包含 .php 扩展名。 -
setLayoutPath() public
设置布局文件的路径。
-
setName() public
设置视图名称。
-
setOption() public
设置视图选项。
-
setOptions() public
设置视图的其他选项。
-
setPlugin() public
设置要使用的插件名称。
-
setTemplate() public
设置要渲染的视图文件名称。指定的名称是
templates/<SubFolder>/
中的文件名,不包含 .php 扩展名。 -
setTemplatePath() public
设置模板文件的路径。
-
setTheme() public
设置要使用的视图主题。
-
setVar() public
保存一个变量以便在模板中使用。
-
setVars() public
保存视图变量以便在模板中使用。
方法详情
__unserialize() ¶ public
__unserialize(array<string, mixed> $data): void
用于重建视图生成器对象的魔法方法。
参数
-
array<string, mixed>
$data 数据数组。
返回值
void
_checkViewVars() ¶ protected
_checkViewVars(mixed $item, string $key): void
迭代哈希以清理和规范化。
参数
-
mixed
$item 视图变量值的引用。
-
string
$key 视图变量键。
返回值
void
抛出
InvalidArgumentException
addHelper() ¶ public
addHelper(string $helper, array<string, mixed> $options = []): $this
添加要使用的辅助函数,覆盖任何现有的同名辅助函数。
参数
-
string
$helper 要使用的辅助函数。
-
array<string, mixed>
$options optional 选项。
返回值
$this
addHelpers() ¶ public
addHelpers(array $helpers): $this
添加要使用的辅助函数,覆盖任何现有的同名辅助函数。
参数
-
array
$helpers 要使用的辅助函数。
返回值
$this
build() ¶ public
build(Cake\Http\ServerRequest|null $request = null, Cake\Http\Response|null $response = null, Cake\Event\EventManagerInterface|null $events = null): Cake\View\View
使用生成器中的数据,创建一个视图实例。
如果 className() 为空,则使用 App\View\AppView。如果该类不存在,则使用 {@link \Cake\View\View}。
参数
-
Cake\Http\ServerRequest|null
$request 可选 要使用的请求。
-
Cake\Http\Response|null
$response 可选 要使用的响应。
-
Cake\Event\EventManagerInterface|null
$events 可选 要使用的事件管理器。
返回值
Cake\View\View
抛出
Cake\View\Exception\MissingViewException
createFromArray() ¶ public
createFromArray(array<string, mixed> $config): $this
从序列化配置中配置一个视图生成器实例。
参数
-
array<string, mixed>
$config 视图构建器配置数组。
返回值
$this
disableAutoLayout() ¶ public
disableAutoLayout(): $this
关闭 CakePHP 的应用布局文件的传统模式。
设置为关闭意味着布局将不会自动应用于渲染的视图。
返回值
$this
enableAutoLayout() ¶ public
enableAutoLayout(bool $enable = true): $this
打开或关闭 CakePHP 的应用布局文件的传统模式。默认情况下打开。设置为关闭意味着布局不会自动应用于渲染的视图。
参数
-
bool
$enable 可选 用于打开/关闭的布尔值。
返回值
$this
getTemplate() ¶ public
getTemplate(): string|null
获取要渲染的视图文件名称。指定的名称是 templates/<SubFolder>/
中的文件名,不包含 .php 扩展名。
返回值
string|null
isAutoLayoutEnabled() ¶ public
isAutoLayoutEnabled(): bool
返回是否启用了 CakePHP 的应用布局文件的传统模式。禁用意味着布局不会自动应用于渲染的视图。
返回值
bool
jsonSerialize() ¶ public
jsonSerialize(): array
将视图生成器对象序列化为可以原生序列化并重新使用以克隆此生成器实例的值。
对于 viewVars,有一些限制需要注意。
- ORM\Query 执行并存储为结果集
- SimpleXMLElements 存储为关联数组
- 异常存储为字符串
- 不支持资源、\Closure 和 \PDO。
返回值
array
setClassName() ¶ public
setClassName(string|null $name): $this
设置视图类名。
接受简短名称(Ajax)、插件名称(MyPlugin.Ajax)、完全命名空间名称(App\View\AppView)或 null 以使用 CakePHP 提供的 View 类。
参数
-
string|null
$name 视图的类名。
返回值
$this
setHelpers() ¶ public
setHelpers(array $helpers): $this
设置要使用的辅助函数,重置辅助函数配置。
参数
-
array
$helpers 要使用的辅助函数。
返回值
$this
setLayout() ¶ public
setLayout(string|null $name): $this
设置要渲染视图的布局文件的名称。指定的名称是 templates/layout/
中布局文件的名称,不包含 .php 扩展名。
参数
-
string|null
$name 要设置的布局文件名。
返回值
$this
setLayoutPath() ¶ public
setLayoutPath(string|null $path): $this
设置布局文件的路径。
参数
-
string|null
$path 布局文件的路径。
返回值
$this
setName() ¶ public
setName(string|null $name): $this
设置视图名称。
参数
-
string|null
$name 视图的名称,或 null 以删除当前名称。
返回值
$this
setOption() ¶ public
setOption(string $name, mixed $value): $this
设置视图选项。
参数
-
string
$name 选项的名称。
-
mixed
$value 要设置的值。
返回值
$this
setOptions() ¶ public
setOptions(array<string, mixed> $options, bool $merge = true): $this
设置视图的其他选项。
这使您能够为应用程序/插件视图类提供自定义构造函数参数。
参数
-
array<string, mixed>
$options 选项数组。
-
bool
$merge 可选 是否将现有数据与新数据合并。
返回值
$this
setPlugin() ¶ public
setPlugin(string|null $name): $this
设置要使用的插件名称。
参数
-
string|null
$name 插件名称。使用 null 以删除当前插件名称。
返回值
$this
setTemplate() ¶ public
setTemplate(string|null $name): $this
设置要渲染的视图文件名称。指定的名称是 templates/<SubFolder>/
中的文件名,不包含 .php 扩展名。
参数
-
string|null
$name 要设置的视图文件名,或 null 以删除模板名称。
返回值
$this
setTemplatePath() ¶ public
setTemplatePath(string|null $path): $this
设置模板文件的路径。
参数
-
string|null
$path 视图文件的路径。
返回值
$this
setTheme() ¶ public
setTheme(string|null $theme): $this
设置要使用的视图主题。
参数
-
string|null
$theme 主题名称。使用 null 以删除当前主题。
返回值
$this
setVar() ¶ public
setVar(string $name, mixed $value = null): $this
保存一个变量以便在模板中使用。
参数
-
string
$name 字符串或数据数组。
-
mixed
$value 可选 值。
返回值
$this
setVars() ¶ public
setVars(array<string, mixed> $data, bool $merge = true): $this
保存视图变量以便在模板中使用。
参数
-
array<string, mixed>
$data 数据数组。
-
bool
$merge 可选 是否与现有变量合并,默认为 true。
返回值
$this