<?php declare(strict_types=1); namespace ViewComponents; use CodeIgniter\View\ViewDecoratorInterface; use Override; /** * Enables rendering of View Components into the views. * * Borrowed and adapted from https://github.com/lonnieezell/Bonfire2/ */ class Decorator implements ViewDecoratorInterface { private static ?ComponentRenderer $components = null; #[Override] public static function decorate(string $html): string { $components = self::factory(); return $components->render($html); } /** * Factory method to create a new instance of ComponentRenderer */ private static function factory(): ComponentRenderer { if (! self::$components instanceof ComponentRenderer) { self::$components = new ComponentRenderer(); } return self::$components; } }