WP/EnqueuedResourceParameters: implement PHPCSUtils and support modern PHP #2177
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.
WP/EnqueuedResourceParameters: add support for PHP 8.0+ named parameters
PassedParameters::getParameterFromStack()
method.WP has been renaming parameters and is probably not done yet, but it doesn't look like those changes (so far) made it into changelog entries....
For the purposes of this exercise, I've taken the current parameter name as the "truth" as support for named parameters hasn't officially been announced yet, so any renames after this moment are the only ones relevant.
Includes additional unit tests.
WP/EnqueuedResourceParameters: prevent false positives
The
'raw'
key in the parameter arrays returned from thePassedParameters
class contains - as per the name - the raw contents of the parameter.Since PHPCSUtils 1.0.0-alpha4, the return array also contain a
'clean'
index, which contains the contents of the parameter cleaned of comments.By switching to using that key, a
null
value accompanied by a comment will no longer throw the wrong error.Includes unit test demonstrating the issue and safeguarding the fix.
WP/EnqueuedResourceParameters: improve error position precision
... for multi-line function calls.
WP/EnqueuedResourceParameters: add support for PHP 7.4/8.1 numbers
PHP 7.4 introduced numeric literals with underscores.
PHP 8.1 introduced explicit octal notation.
While PHPCS backfills the tokens for this, this sniff uses an
eval()
call and if either of these PHP 7.4/8.1 syntaxes would be passed to thiseval()
while PHPCS is being run on PHP < 7.4, this will result in a parse error on the code passed toeval()
.By using the PHPCSUtils
Numbers::getCompleteNumber()
method, we can get access to the decimal value of the encountered number, which allows us to bypass the issue by using that in the code string passed toeval()
.Includes unit tests.