Download the PHP package yiisoft/error-handler without Composer
On this page you can find all versions of the php package yiisoft/error-handler. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yiisoft/error-handler
More information about yiisoft/error-handler
Files in yiisoft/error-handler
Package error-handler
Short Description Yii Error Handling Library
License BSD-3-Clause
Homepage https://www.yiiframework.com/
Informations about the package error-handler
Yii Error Handler
The package provides advanced error handling. The features are:
- PSR-15 middleware for catching unhandled errors.
- PSR-15 middleware for mapping certain exceptions to custom responses.
- Production and debug modes.
- Debug mode displays details, stacktrace, has dark and light themes and handy buttons to search for error without typing.
- Takes PHP settings into account.
- Handles out of memory errors, fatals, warnings, notices and exceptions.
- Can use any PSR-3 compatible logger for error logging.
- Detects response format based on mime type of the request.
- Supports responding with HTML, plain text, JSON, XML and headers out of the box.
- Has ability to implement your own error rendering for additional types.
- Friendly exceptions support.
Requirements
- PHP 8.0 or higher.
DOM
PHP extension.JSON
PHP extension.mbstring
PHP extension.
Installation
The package could be installed with Composer:
General usage
Creating an error handler:
The error handler logs information about the error using any PSR-3
compatible logger. If for some reason you do not want to log error information,
specify an instance of the \Psr\Log\NullLogger
.
By default, the error handler is set to production mode and displays no detailed information. You can enable and disable debug mode as follows:
The error handler handles out-of-memory errors. To achieve it, memory is pre-allocated so that if a problem occurs with
a lack of memory, the error handler can handle the error using this reserved memory. You can specify your own reserve
size using the memoryReserveSize()
method. If you set this value to 0, no memory will be reserved.
The register()
method registers the PHP error and exception handlers.
To unregister these and restore the PHP error and exception handlers, use the unregister()
method.
Rendering error data
The following renderers are available out of the box:
Yiisoft\ErrorHandler\Renderer\HeaderRenderer
- Renders error into HTTP headers. It is used for HEAD requests.Yiisoft\ErrorHandler\Renderer\HtmlRenderer
- Renders error into HTML.Yiisoft\ErrorHandler\Renderer\JsonRenderer
- Renders error into JSON.Yiisoft\ErrorHandler\Renderer\PlainTextRenderer
- Renders error into plain text.Yiisoft\ErrorHandler\Renderer\XmlRenderer
- Renders error into XML.
If the existing renderers are not enough, you can create your own. To do this, you must implement the
Yiisoft\ErrorHandler\ThrowableRendererInterface
and specify it when creating an instance of the error handler.
For more information about creating your own renders and examples of rendering error data, see here.
Using a factory to create a response
Yiisoft\ErrorHandler\Factory\ThrowableResponseFactory
renders Throwable
object and produces a response according to the content type provided by the client.
Yiisoft\ErrorHandler\Factory\ThrowableResponseFactory
chooses how to render an exception based on accept HTTP header.
If it's text/html
or any unknown content type, it will use the error or exception HTML template to display errors.
For other mime types, the error handler will choose different renderer that is registered within the error catcher.
By default, JSON, XML and plain text are supported. You can change this behavior as follows:
Using a middleware for catching unhandled errors
Yiisoft\ErrorHandler\Middleware\ErrorCatcher
is a PSR-15 middleware that
catches exceptions raised during middleware stack execution and passes them to the instance of Yiisoft\ErrorHandler\ThrowableResponseFactoryInterface
to create a response.
Yiisoft\ErrorHandler\Middleware\ErrorCatcher
can be instantiated with PSR-14 event dispatcher as an optional dependency.
In this case \Yiisoft\ErrorHandler\Event\ApplicationError
will be dispatched when ErrorCatcher
catches an error.
Using a middleware for mapping certain exceptions to custom responses
Yiisoft\ErrorHandler\Middleware\ExceptionResponder
is a PSR-15
middleware that maps certain exceptions to custom responses.
In the application middleware stack Yiisoft\ErrorHandler\Middleware\ExceptionResponder
must be placed before
Yiisoft\ErrorHandler\Middleware\ErrorCatcher
.
Events
- When
ErrorCatcher
catches an error it optionally dispatches\Yiisoft\ErrorHandler\Event\ApplicationError
event. Instance ofPsr\EventDispatcher\EventDispatcherInterface
must be provided to theErrorCatcher
.
Friendly Exceptions
HtmlRenderer
supports friendly exceptions.
Code blocks in solution markdown support language syntax highlight:
Language | Aliases |
---|---|
Bash | bash, sh, zsh |
CSS | css |
HTML, XML | xml, html, xhtml, rss, atom, xjb, xsd, xsl, plist, svg |
JavaScript | javascript, js, jsx |
JSON | json |
PHP | php |
Plaintext | plaintext, txt, text |
SQL | sql |
For example:
Documentation
- Yii guide to handling errors
- Internals
If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
License
The Yii Error Handler is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.
Credits
The Yii Error Handler use code of Highlight.js by Ivan Sagalaev and other contributors.
Support the project
Follow updates
All versions of error-handler with dependencies
ext-dom Version *
ext-json Version *
ext-mbstring Version *
alexkart/curl-builder Version ^1.0
cebe/markdown Version ^1.2
psr/container Version ^1.0|^2.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.0|^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
psr/log Version ^1.1|^2.0|^3.0
yiisoft/friendly-exception Version ^1.0
yiisoft/http Version ^1.2
yiisoft/injector Version ^1.0