ビューデコレータ

ビューデコレータを使用すると、アプリケーションはレンダリングプロセス中に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',
    ];

    // ...
}

登録されると、デコレータはレンダリングまたは解析されるすべてのビューに対して呼び出されます。デコレータは、この設定で指定された順序で呼び出されます。