/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/cakephp/src/Error
NameSizeModeActions
Debug/-0755rm
Middleware/-0755rm
Renderer/-0755rm
BaseErrorHandler.php128070644editdlrm
ConsoleErrorHandler.php38300644editdlrm
Debugger.php413150644editdlrm
ErrorHandler.php74600644editdlrm
ErrorLogger.php68750644editdlrm
ErrorLoggerInterface.php21100644editdlrm
ErrorRendererInterface.php13720644editdlrm
ErrorTrap.php67650644editdlrm
ExceptionRenderer.php8770644editdlrm
ExceptionRendererInterface.php12940644editdlrm
ExceptionTrap.php133330644editdlrm
FatalErrorException.php13010644editdlrm
PhpError.php41200644editdlrm
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/cakephp/src/Error/ErrorTrap.php (6765B)
*/ protected $_defaultConfig = [ 'errorLevel' => E_ALL, 'errorRenderer' => null, 'log' => true, 'logger' => ErrorLogger::class, 'trace' => false, ]; /** * Constructor * * @param array $options An options array. See $_defaultConfig. */ public function __construct(array $options = []) { $this->setConfig($options); } /** * Choose an error renderer based on config or the SAPI * * @return class-string<\Cake\Error\ErrorRendererInterface> */ protected function chooseErrorRenderer(): string { $config = $this->getConfig('errorRenderer'); if ($config !== null) { return $config; } /** @var class-string<\Cake\Error\ErrorRendererInterface> */ return PHP_SAPI === 'cli' ? ConsoleErrorRenderer::class : HtmlErrorRenderer::class; } /** * Attach this ErrorTrap to PHP's default error handler. * * This will replace the existing error handler, and the * previous error handler will be discarded. * * This method will also set the global error level * via error_reporting(). * * @return void */ public function register(): void { $level = $this->_config['errorLevel'] ?? -1; error_reporting($level); set_error_handler([$this, 'handleError'], $level); } /** * Handle an error from PHP set_error_handler * * Will use the configured renderer to generate output * and output it. * * This method will dispatch the `Error.beforeRender` event which can be listened * to on the global event manager. * * @param int $code Code of error * @param string $description Error description * @param string|null $file File on which error occurred * @param int|null $line Line that triggered the error * @return bool True if error was handled */ public function handleError( int $code, string $description, ?string $file = null, ?int $line = null ): bool { if (!(error_reporting() & $code)) { return false; } if ($code === E_USER_ERROR || $code === E_ERROR || $code === E_PARSE) { throw new FatalErrorException($description, $code, $file, $line); } /** @var array $trace */ $trace = Debugger::trace(['start' => 1, 'format' => 'points']); $error = new PhpError($code, $description, $file, $line, $trace); $debug = Configure::read('debug'); $renderer = $this->renderer(); try { // Log first incase rendering or event listeners fail $this->logError($error); $event = $this->dispatchEvent('Error.beforeRender', ['error' => $error]); if ($event->isStopped()) { return true; } $renderer->write($renderer->render($error, $debug)); } catch (Exception $e) { // Fatal errors always log. $this->logger()->logMessage('error', 'Could not render error. Got: ' . $e->getMessage()); return false; } return true; } /** * Logging helper method. * * @param \Cake\Error\PhpError $error The error object to log. * @return void */ protected function logError(PhpError $error): void { if (!$this->_config['log']) { return; } $logger = $this->logger(); if (method_exists($logger, 'logError')) { $logger->logError($error, Router::getRequest(), $this->_config['trace']); } else { $loggerClass = get_class($logger); deprecationWarning( "The configured logger `{$loggerClass}` does not implement `logError()` " . 'which will be required in future versions of CakePHP.' ); $context = []; if ($this->_config['trace']) { $context = [ 'trace' => $error->getTraceAsString(), 'request' => Router::getRequest(), ]; } $logger->logMessage($error->getLabel(), $error->getMessage(), $context); } } /** * Get an instance of the renderer. * * @return \Cake\Error\ErrorRendererInterface */ public function renderer(): ErrorRendererInterface { /** @var class-string<\Cake\Error\ErrorRendererInterface> $class */ $class = $this->getConfig('errorRenderer') ?: $this->chooseErrorRenderer(); return new $class($this->_config); } /** * Get an instance of the logger. * * @return \Cake\Error\ErrorLoggerInterface */ public function logger(): ErrorLoggerInterface { $oldConfig = $this->getConfig('errorLogger'); if ($oldConfig !== null) { deprecationWarning('The `errorLogger` configuration key is deprecated. Use `logger` instead.'); $this->setConfig(['logger' => $oldConfig, 'errorLogger' => null]); } /** @var class-string<\Cake\Error\ErrorLoggerInterface> $class */ $class = $this->getConfig('logger', $this->_defaultConfig['logger']); return new $class($this->_config); } }