From 5adeafbc238e896b780eb8353e82cf7d6539e781 Mon Sep 17 00:00:00 2001 From: Tom Klingenberg Date: Mon, 11 Apr 2022 14:08:44 +0200 Subject: [PATCH] report diagnostic messages on standard error PHP diagnostic messages do not interfere any longer with the standard output of the auto-completion. whatever the setting of display_errors [1] is, set it to the string "stderr" (as of PHP 5.2.4) to send errors to the standard error stream [2], always, the stream for writing diagnostic output. this is specifically important as the `symfony-autocomplete` command writes conventional output to standard output and some _default_ php (incl. cli) configurations display errors on standard output, too, interleaving the conventional output with error information which renders it flawed. this did affect the Dockerhub `php` official image (php:8.1-cli-alpine) [3] and was confirmed with php8.1-cli sury debian package. usage example (php8.1 -n -f ...): $ symfony-autocomplete --shell=bash --aliases=codecept \ > /etc/bash_completion.d/composer Deprecated: Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/mot/PhpstormProjects/symfony-console-autocomplete/vendor/symfony/console/Symfony/Component/Console/Helper/HelperSet.php on line 104 PHP diagnostic messages (error, warning, deprecation etc.) are now shown on standard error - even if not before - according to the error reporting level [4] of the PHP cli run-time configuration. php-language-level: 8.1 issue: 72 credits: Alberto Tavoletti (sviluppo; reporting and testing) [1]: https://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors [2]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_05 [3]: https://hub.docker.com/_/php [4]: https://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting --- bin/symfony-autocomplete | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/symfony-autocomplete b/bin/symfony-autocomplete index 3877afd..d6b3163 100755 --- a/bin/symfony-autocomplete +++ b/bin/symfony-autocomplete @@ -1,6 +1,10 @@ #!/usr/bin/env php