. namespace core\hook\output; /** * Class after_http_headers * * @package core * @copyright 2024 Huong Nguyen * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @property-read \renderer_base $renderer The page renderer object */ #[\core\attribute\tags('output')] #[\core\attribute\label('Allows plugins to make changes after headers are sent')] class after_http_headers { /** * Hook to allow subscribers to modify the process after headers are sent. * * @param \renderer_base $renderer * @param string $output */ public function __construct( /** @var \renderer_base The page renderer object */ public readonly \renderer_base $renderer, /** @var string The collected output */ private string $output = '', ) { } /** * Plugins implementing callback can add any HTML after headers content. * * Must be a string containing valid html content. * * @param null|string $output */ public function add_html(?string $output): void { if ($output) { $this->output .= $output; } } /** * Returns all HTML added by the plugins * * @return string */ public function get_output(): string { return $this->output; } }