-
-
Couldn't load subscription status.
- Fork 89
3.13.3 - 2025年09月04日 #1212
jrfnl
announced in
Announcements
3.13.3 - 2025年09月04日
#1212
-
Added
- Tokenizer support for PHP 8.4 dereferencing of new expressions without wrapping parentheses. PHP 8.4 | Tokenizer/PHP: allow for anon class dereferencing #1160
- Thanks to Juliette Reinders Folmer for the patch.
- Tokenizer support for PHP 8.4
abstractproperties. PHP 8.4 | Tokenizer/PHP: fix union/intersection/DNF type tokenization with abstract properties #1183- The
File::getMemberProperties()method now also supportsabstractproperties through a newis_abstractarray index in the return value. PHP 8.4 | File::getMemberProperties(): add support forabstractproperties #1184 - Additionally, the following sniffs have been updated to support
abstractproperties:- Generic.PHP.LowerCaseConstant PHP 8.4 | Generic/[Lower|Upper]CaseConstant: add support for abstract properties #1185
- Generic.PHP.UpperCaseConstant PHP 8.4 | Generic/[Lower|Upper]CaseConstant: add support for abstract properties #1185
- PSR2.Classes.PropertyDeclaration PHP 8.4 | PSR2/PropertyDeclaration: add support for abstract properties #1188
- Squiz.Commenting.VariableComment PHP 8.4 | Squiz/VariableComment: add support for abstract properties #1186
- Squiz.WhiteSpace.MemberVarSpacing PHP 8.4 | Squiz/MemberVarSpacing: add support for abstract properties #1187
- Thanks to Juliette Reinders Folmer for the patches
- The
- Tokenizer support for the PHP 8.4 "exit as a function call" change. Proposal to fix Tokenizer issue with FQN exit/die/true/false/null #1201
- When
exit/dieis used as a fully qualified "function call", it will now be tokenized asT_NS_SEPARATOR+T_EXIT. - Additionally, the following sniff has been updated to handle fully qualified exit/die correctly:
- Squiz.PHP.NonExecutableCode
- Thanks to Juliette Reinders Folmer for the patches
- When
Changed
- Tokenizer/PHP: fully qualified
true/false/nullwill now be tokenized asT_NS_SEPARATOR+T_TRUE/T_FALSE/T_NULL. Proposal to fix Tokenizer issue with FQN exit/die/true/false/null #1201- Previously, these were tokenized as
T_NS_SEPARATOR+T_STRING. - Additionally, the following sniffs have been updated to handle fully qualified true/false/null correctly:
- Generic.CodeAnalysis.UnconditionalIfStatement
- Generic.ControlStructures.DisallowYodaConditions
- PEAR.Functions.ValidDefaultValue
- Thanks to Juliette Reinders Folmer for the patches.
- Previously, these were tokenized as
- Generic.PHP.Syntax: the sniff is now able to scan input provided via STDIN on non-Windows OSes.
Generic.PHP.Syntaxfalse negative when file content passed via STDIN #915- Thanks to Rodrigo Primo for the patch.
- PSR2.ControlStructures.SwitchDeclaration: the
WrongOpener*error code is now auto-fixable if the identified "wrong opener" is a semi-colon. PSR2/SwitchDeclaration: make "wrong opener" fixable if opener is a semi-colon #1161- Thanks to Juliette Reinders Folmer for the patch.
- The PSR2.Classes.PropertyDeclaration will now check that the abstract modifier keyword is placed before a visibility keyword. PHP 8.4 | PSR2/PropertyDeclaration: add support for abstract properties #1188
- Errors will be reported via a new
AbstractAfterVisibilityerror code. - Thanks to Juliette Reinders Folmer for the patch.
- Errors will be reported via a new
- Various housekeeping, including improvements to the tests and documentation.
- Thanks to Bernhard Zwein, Rick Kerkhof, Rodrigo Primo and Juliette Reinders Folmer for their contributions.
Fixed
- Fixed bug
--paralleloption fails if pcntl_waitpid returns non-managed process ID #1112 :--paralleloption fails if PHP_CodeSniffer is invoked via bash and the invokation creates a non-PHPCS-managed process.- Thanks to Rick Kerkhof for the patch.
- Fixed bug Fatal error when inadvertently passing the same file twice and using parallel execution #1113 : fatal error when the specified "files to scan" would result in the same file being added multiple times to the queue.
- This error only occured when
--parallelscanning was enabled. - Thanks to Rodrigo Primo for the patch.
- This error only occured when
- Fixed bug PEAR.WhiteSpace.ObjectOperatorIndent expects wrong indentation when there are multiple chained calls in the same statement #1154 : PEAR.WhiteSpace.ObjectOperatorIndent: false positive when checking multiple chained method calls in a multidimensional array.
- Thanks to Rodrigo Primo for the patch.
- Fixed bug Ruleset::processRule(): fix edge case bug - inconsistent handling of empty string array key #1193 : edge case inconsistency in how empty string array keys for sniff properties are handled.
- Thanks to Rodrigo Primo and Juliette Reinders Folmer for the patch.
- Fixed bug Squiz.Commenting.FunctionComment truncates class name if it contains underscores #1197 : Squiz.Commenting.FunctionComment: return types containing a class name with underscores would be truncated leading to incorrect results.
- Thanks to Juliette Reinders Folmer for the patch.
Other
- The Wiki documentation is now publicly editable. 🎉
- Update proposals can be submittted by opening a pull request in the PHPCSStandards/PHP_CodeSniffer-documentation repository.
Contributions welcome ! - Thanks to Anna Filina, Dan Wallis and Juliette Reinders Folmer for their work on getting this set up.
- Update proposals can be submittted by opening a pull request in the PHPCSStandards/PHP_CodeSniffer-documentation repository.
- The Phar website has had a facelift. Make the PHAR "website" a little more fancy #107
- Thanks to Bernhard Zwein for making this happen!
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@benno5020, @NanoSector
Statistics
Closed: 11 issues
Merged: 40 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
This discussion was created from the release 3.13.3 - 2025年09月04日.
Beta Was this translation helpful? Give feedback.
All reactions
-
🚀 1
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment