뷰 데코레이터

뷰 데코레이터를 사용하면 애플리케이션이 렌더링중 HTML 출력을 수정할 수 있습니다. 데코레이팅은 캐시되기 직전에 발생하며 뷰에 사용자 정의 기능을 적용할 수 있습니다.

데코레이터 만들기

자신의 뷰 데코레이터를 만들려면 CodeIgniter\View\ViewDecoratorInterface를 구현(implement)하는 새 클래스를 만들어야 합니다. 이렇게 하려면 생성된 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',
    ];

    // ...
}

이제 렌더링되거나 구문 분석되는 모든 뷰에 대해 데코레이터가 호출됩니다. 데코레이터는 구성(config) 설정에 지정된 순서대로 호출됩니다.