视图装饰器
什么是视图装饰器?
视图装饰器允许应用在渲染过程中修改 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',
];
}
注册后,装饰器将在每次渲染或解析视图时被调用。 装饰器按照在此配置项中指定的顺序依次执行。