视图装饰器
什么是视图装饰器?
视图装饰器允许你的应用程序在渲染过程中修改 HTML 输出。这发生在缓存之前,允许你将自定义功能应用于视图。
创建装饰器
创建装饰器类
创建自己的视图装饰器需要创建一个新的类,该类实现 CodeIgniter\View\ViewDecoratorInterface
。
这需要一个单一的方法,它获取生成的 HTML 字符串,对其执行任何修改,并返回结果 HTML。
<?php
namespace App\Views\Decorators;
use CodeIgniter\View\ViewDecoratorInterface;
class MyDecorator implements ViewDecoratorInterface
{
public static function decorate(string $html): string
{
// Modify the output here
return $html;
}
}
注册装饰器类
创建后,必须在 app/Config/View.php 中注册该类:
<?php
namespace Config;
use CodeIgniter\Config\View as BaseView;
class View extends BaseView
{
// ...
public array $decorators = [
'App\Views\Decorators\MyDecorator',
];
}
现在它已注册,每渲染或解析的视图都将调用装饰器。 装饰器的调用顺序与此配置设置中指定的顺序相同。