* ``` * * @internal */ final class PhpErrorCodeViewHelper extends AbstractViewHelper { private static array $levelNames = [ E_ERROR => 'E_ERROR', E_WARNING => 'E_WARNING', E_PARSE => 'E_PARSE', E_NOTICE => 'E_NOTICE', E_CORE_ERROR => 'E_CORE_ERROR', E_CORE_WARNING => 'E_CORE_WARNING', E_COMPILE_ERROR => 'E_COMPILE_ERROR', E_COMPILE_WARNING => 'E_COMPILE_WARNING', E_USER_ERROR => 'E_USER_ERROR', E_USER_WARNING => 'E_USER_WARNING', E_USER_NOTICE => 'E_USER_NOTICE', E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR', E_DEPRECATED => 'E_DEPRECATED', E_USER_DEPRECATED => 'E_USER_DEPRECATED', // @todo: Remove 2048 (deprecated E_STRICT) in v14, as this value is no longer used by PHP itself // and only kept here here because possible custom PHP extensions may still use it. // See https://wiki.php.net/rfc/deprecations_php_8_4#remove_e_strict_error_level_and_deprecate_e_strict_constant 2048 /* deprecated E_STRICT */ => 'PHP Runtime Notice', ]; public function initializeArguments(): void { $this->registerArgument('phpErrorCode', 'int', '', true); } /** * Render a readable string for PHP error code. */ public function render(): string { $phpErrorCode = (int)$this->arguments['phpErrorCode']; $levels = []; if (($phpErrorCode & E_ALL) == E_ALL) { $levels[] = 'E_ALL'; $phpErrorCode &= ~E_ALL; } foreach (self::$levelNames as $level => $name) { if (($phpErrorCode & $level) == $level) { $levels[] = $name; } } $output = ''; if (!empty($levels)) { $output = implode(' | ', $levels); } return $output; } }