视图装饰器

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

    // ...
}

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