视图装饰器

什么是视图装饰器?

视图装饰器允许你的应用程序在渲染过程中修改 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',
    ];
}

现在它已注册,每渲染或解析的视图都将调用装饰器。 装饰器的调用顺序与此配置设置中指定的顺序相同。