Improve DowngradeStreamIsattyRector when stream_isatty is available #61
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes rectorphp/rector#6416
I had originally believed that
symfony/console
might have a solution that'd work better as it inverts the order of operations. Further investigation showed that Rector already sourced the implementation from Symfony's Polyfills. Running under the assumption that the implementation insymfony/polyfill-php72
is highly used & tested,rules/DowngradePhp72/snippet/isatty_closure.php.inc
has been updated to use the latest implementation.In practice, this adds a
function_exists
call verifying thatposix_isatty
is available which is not always the case.Additionally, given it appears the intent is to downgrade to support lower minimum requirements, this change also adds a check to see if
stream_isatty
is available and uses the originally intended function when found. My hope here is that PHP >=7.2 is fully supported with mostly unmodified function calls, while <7.2 is supported with the polyfill implementation.