ビューデコレータ
ビューデコレータを使用すると、アプリケーションはレンダリングプロセス中に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',
];
// ...
}
登録されると、デコレータはレンダリングまたは解析されるすべてのビューに対して呼び出されます。デコレータは、この設定で指定された順序で呼び出されます。