Tags: bamarni/symfony-console-autocomplete
Tags
chore(ci): add build manager (#75) to more easily build the project locally, add GNU make as build manager, just `make`. current workflow is aligned with configuration in travis.yml, the php command defaults to `php` and can be configured with `PHP=php8.2`. the build is leaving the project tree for `bats` which goes to `/tmp/bats` and `/tmp/local`, which is from the current configuration. github workflow configuration also updated to the current PHP versions and deprecation noise reduced for the remote dependencies. list: * add build manager align Makefile with steps in .travis.yml to build easily locally. just `make` or `make PHP=php8.2 test`. * bump remote build dependencies in the Microsoft GitHub Action workflows to removes noise from the logs. * roll ci it's been quite some time, update php and the ubuntu versions. Fix words variable environment leak (#73) After tab-completing, the `$words` array would persist and possibly affect other things. Using `local` keeps it inside the function scope.
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
PreviousNext