Download the PHP package doctrine/deprecations without Composer
On this page you can find all versions of the php package doctrine/deprecations. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download doctrine/deprecations
More information about doctrine/deprecations
Files in doctrine/deprecations
Package deprecations
Short Description A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.
License MIT
Homepage https://www.doctrine-project.org/
Informations about the package deprecations
Doctrine Deprecations
A small (side-effect free by default) layer on top of
trigger_error(E_USER_DEPRECATED)
or PSR-3 logging.
- no side-effects by default, making it a perfect fit for libraries that don't know how the error handler works they operate under
- options to avoid having to rely on error handlers global state by using PSR-3 logging
- deduplicate deprecation messages to avoid excessive triggering and reduce overhead
We recommend to collect Deprecations using a PSR logger instead of relying on the global error handler.
Usage from consumer perspective:
Enable Doctrine deprecations to be sent to a PSR3 logger:
Enable Doctrine deprecations to be sent as @trigger_error($message, E_USER_DEPRECATED)
messages by setting the DOCTRINE_DEPRECATIONS
environment variable to trigger
.
Alternatively, call:
If you only want to enable deprecation tracking, without logging or calling trigger_error
then set the DOCTRINE_DEPRECATIONS
environment variable to track
.
Alternatively, call:
Tracking is enabled with all three modes and provides access to all triggered deprecations and their individual count:
Suppressing Specific Deprecations
Disable triggering about specific deprecations:
Disable all deprecations from a package
Other Operations
When used within PHPUnit or other tools that could collect multiple instances of the same deprecations the deduplication can be disabled:
Disable deprecation tracking again:
Usage from a library/producer perspective:
When you want to unconditionally trigger a deprecation even when called
from the library itself then the trigger
method is the way to go:
If variable arguments are provided at the end, they are used with sprintf
on
the message.
When you want to trigger a deprecation only when it is called by a function outside of the current package, but not trigger when the package itself is the cause, then use:
Based on the issue link each deprecation message is only triggered once per request.
A limited stacktrace is included in the deprecation message to find the offending location.
Note: A producer/library should never call Deprecation::enableWith
methods
and leave the decision how to handle deprecations to application and
frameworks.
Usage in PHPUnit tests
There is a VerifyDeprecations
trait that you can use to make assertions on
the occurrence of deprecations within a test.
Displaying deprecations after running a PHPUnit test suite
It is possible to integrate this library with PHPUnit to display all deprecations triggered during the test suite execution.
Note that you can still trigger Deprecations in your code, provided you use the
#[WithoutErrorHandler]
attribute to disable PHPUnit's error handler for tests
that call it. Be wary that this will disable all error handling, meaning it
will mask any warnings or errors that would otherwise be caught by PHPUnit.
At the moment, it is not possible to disable deduplication with an environment variable, but you can use a bootstrap file to achieve that:
Then, reference that file in your PHPUnit configuration:
What is a deprecation identifier?
An identifier for deprecations is just a link to any resource, most often a Github Issue or Pull Request explaining the deprecation and potentially its alternative.