-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
Description
| Q | A |
|---|---|
| Bug report? | yes |
| Feature request? | no |
| BC Break report? | no |
| RFC? | no |
| Symfony version | 3.4.4 |
I have a env.php file with the following line to set the error reporting level:
error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED & ~E_STRICT);This file is dumped on the composer autoload thanks to this configuration:
{
"autoload": {
"psr-4": { "": "src/" },
"files": [
"app/env.php",
"app/AppKernel.php"
]
},
"autoload-dev": {
"psr-4": {
"Dev\\": "src-dev",
"Tests\\": "tests/"
},
"files": [
"app/env_dev.php",
"vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
]
},
}And of course, the composer dump is called with --no-dev on the production server.
Currently, if a exception is thrown on production and deprecated error are triggered, they are logged on the production log file.
So I start with this tiny test:
require_once __DIR__.'/vendor/autoload.php';
var_dump(error_reporting());
trigger_error('This is a deprecation.', E_USER_DEPRECATED);
trigger_error('This is an error.', E_USER_ERROR);And here is the result:
$ php current/test.php
int(6143)
PHP Fatal error: This is an error. in /var/www/project/prod/releases/20180221183905/test.php on line 10
It works. The deprecated error is ignored and the error_reporting value is 6143.
First, we can supposed the error_reporting is changed later. So I tried with this simple controller action:
public function failAction(): void
{
trigger_error('Error reporting: '.error_reporting(), E_USER_DEPRECATED);
throw new \Exception('Test exception with error reporting: '.error_reporting());
}After a call of this action, I have the following log:
$ grep -B1 'Test exception' shared/var/logs/prod-2018-02.log
[2018-02-22 11:16:37] php.INFO: User Deprecated: Error reporting: 6143 {"exception":"[object] (ErrorException(code: 0): User Deprecated: Error reporting: 6143 at /var/www/project/prod/releases/20180221183905/src/AppBundle/Controller/DefaultController.php:167)"} []
[2018-02-22 11:16:37] request.CRITICAL: Uncaught PHP Exception Exception: "Test exception with error reporting: 6143" at /var/www/project/prod/releases/20180221183905/src/AppBundle/Controller/DefaultController.php line 168 {"exception":"[object] (Exception(code: 0): Test exception with error reporting: 6143 at /var/www/project/prod/releases/20180221183905/src/AppBundle/Controller/DefaultController.php:168)"} []
As you can see, both deprecation and error are logged and the error_reporting value is still the same: 6143
This is why I'm thinking about a bug, because the error reporting level does not change so the deprecation should not be reported.
If you think it is not, I'm curious to know what is the issue. 😄