squizlabs/php_codesniffer (Source:GitHub Releases))
3.13.0
Added
- Added support for PHP 8.4 asymmetric visibility modifiers to the tokenizer.#871
- Added support for PHP 8.4
final properties to the following sniffs:
Changed
- Generic.WhiteSpace.LanguageConstructSpacing: will now also check the spacing after the
goto language construct keyword.#917 - The PSR2.Classes.PropertyDeclaration will now check that the
final modifier keyword is placed before a visibility keyword.#950 - Improved Help information about the
--reports CLI flag.#1078 - The documentation for the following sniffs has been improved:
- PSR1.Files.SideEffects
- PSR2.ControlStructures.SwitchDeclaration
- PSR2.Namespaces.NamespaceDeclaration
- Thanks toRodrigo Primo for the patches.
- Various housekeeping, including improvements to the tests and documentation.
Deprecated
- Nearly everything which was soft deprecated before is now hard deprecated and will show deprecation notices:
- This applies to:
- All sniffs which will be removed in 4.0.#888
- The deprecated Generator methods.#889
- The old array property setting format (via comma separated strings).#890
- Sniffs not implementing the
PHP_CodeSniffer\Sniffs\Sniff interface.#891 - Sniffs not following the naming conventions.#892
- Standards called Internal.#893
- Sniffs which don't listen for PHP, like JS/CSS specific sniffs.#894
- The deprecation notices can be silenced by using the
-q (=quiet) CLI flag. - Thanks toJuliette Reinders Folmer for the patches.
Fixed
- Fixed bug#1040 : Generic.Strings.UnnecessaryHeredoc - false positive for heredocs containing escape sequences.
- Fixed bug#1040 : Generic.Strings.UnnecessaryHeredoc - fixer would not clean up escape sequences which aren't necessary in nowdocs.
- Fixed bug#1048 : A file under scan would sometimes be updated with partial fixes, even though the file "failed to fix".
Other
Calling all testers!
The first beta release for PHP_CodeSniffer 4.0 has been tagged. Please help by testing the beta release and reporting any issues you run into.
Upgrade guides for bothruleset maintainers/end-users, as well as forsniff developers and integrators, have been published to the Wiki to help smooth the transition.
Statistics
Closed: 3 issues
Merged: 29 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.12.2
Added
- Added support for PHP 8.4
final properties to the following sniffs:
Changed
- Tokenizer/PHP: a PHP open tag at the very end of a file will now always be tokenized as T_OPEN_TAG, independently of the PHP version.#937
- Previously, a PHP open tag at the end of a file was not tokenized as an open tag on PHP < 7.4 and the tokenization would depend on the
short_open_tag setting. - Thanks toJuliette Reinders Folmer for the patch.
- PEAR.Commenting.FunctionComment: improved message for "blank lines between docblock and declaration" check.#830
- The documentation for the following sniffs has been improved:
- Generic.Functions.OpeningFunctionBraceBsdAllman
- Generic.Functions.OpeningFunctionBraceKernighanRitchie
- Generic.WhiteSpace.LanguageConstructSpacing
- Thanks toRodrigo Primo for the patches.
- Various housekeeping, including improvements to the tests and documentation.
Fixed
- Fixed bug#830 : PEAR.Commenting.FunctionComment will no longer remove blank lines within attributes.
- Fixed bug#929 : Generic.PHP.ForbiddenFunctions: prevent false positives/negatives for code interlaced with comments.
- Fixed bug#934 : Generic.PHP.LowerCaseConstant and Generic.PHP.UpperCaseConstant will now correctly ignore DNF types for properties.
- Fixed bug#936 : Squiz.Commenting.FunctionCommentThrowTag: sniff would bow out when function has attributes attached, leading to false negatives.
- Fixed bug#940 : Squiz.Commenting.VariableComment: false positive for missing docblock for properties using DNF types.
- Fixed bug#944 : Squiz.Commenting.FunctionComment did not support DNF/intersection types in
@param tags. - Fixed bug#945 : Squiz.WhiteSpace.FunctionSpacing would get confused when there are two docblocks above a function declaration.
- Fixed bug#947 : Squiz.Commenting.FunctionCommentThrowTag: prevent false positives/negatives for code interlaced with comments.
- Fixed bug#951 : Squiz.Commenting.DocCommentAlignment did not examine docblocks for
final classes. - Fixed bug#955 : Potential race condition, leading to a fatal error, when both the
Diff + theCode reports are requested and caching is on. - Fixed bug#956 : Generic.WhiteSpace.ScopeIndent: undefined array index notice when running in debug mode.
Other
- PHP_CodeSniffer 4.0 is coming soon! Interested in a sneak peek ? Join the live stream at any time on April 14, 15, 17 or 18.
Read the open invitation (#924) for all the details.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@devfrey
Statistics
Closed: 1 issues
Merged: 36 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.12.1
Added
- Documentation for the following sniffs:
- Squiz.Commenting.BlockComment
- Thanks toColin Stewart for the patch.
Changed
- Generic.WhiteSpace.HereNowdocIdentifierSpacing: improved error message text.
- Various housekeeping, including improvements to the tests and documentation.
Deprecated
- The
Generic.Functions.CallTimePassByReference sniff. See#921.- This sniff will be removed in version 4.0.0.
Fixed
- Fixed bug#906 : Fixer: prevent
InvalidArgumentExceptions when displaying verbose information. - Fixed bug#907 : Tokenizer/PHP: tokenization of tokens related to union, intersection and DNF types in combination with PHP 8.4 final properties.
- Fixed bug#908 : Tokenizer/PHP: tokenization of
? in nullable types for readonly properties. - Fixed bug#916 : Tokenizer/PHP:
goto was not recognized as a terminating statement for a case/default in a switch control structure.
Other
- PHP_CodeSniffer 4.0 is coming soon! Interested in a sneak peek ? Join the live stream at any time on April 14, 15, 17 or 18.
Read the open invitation (#924) for all the details.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@costdev
Statistics
Closed: 0 issues
Merged: 24 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.12.0
Added
- Added support for PHP 8.4 final properties to File::getMemberProperties() through a new
is_final array index in the return value.#834 - Generators/HTML: each section title now has a unique anchor link, which can be copied when hovering over a title.#859
- This should make sharing a link to a specific section of the documentation more straight-forward.
- Thanks toJuliette Reinders Folmer for the patch.
- Documentation for the following sniffs:
- Squiz.Classes.ClassFileName
- Squiz.Classes.ValidClassName
- Thanks toBrian Dunne for the patches.
Changed
- PHPCBF: the messaging when no fixable errors are found will now distinguish between "No violations" (at all) versus "No fixable errors".#806
- The
-h (Help) option now contains a more extensive list of "config" options which can be set.#809 - Improved error message when invalid sniff codes are supplied to
--sniffs or--exclude command line arguments.#344 - Improved error message when an invalid generator name is supplied to the
--generator command line argument.#709,#771- The generator name will now also always be handled case-insensitively, independently of the OS used.
- Thanks toRodrigo Primo for the patch.
- The user will be shown an informative error message for sniffs missing one of the required methods.#873
- Ruleset processing will now be allowed to run to its conclusion - barring critical errors - before displaying all ruleset errors in one go.#857
- Previously an error in a ruleset would cause PHPCS to exit immediately and show only one error at a time.
- Thanks toJuliette Reinders Folmer for the patch.
- Generators: XML documentation files which don't contain any actual documentation will now silently be ignored.#755
- Generators: when the
title attribute is missing, the documentation generation will now fall back to the sniff name as the title.#820 - Generators: cleaner output based on the elements of the documentation which are available.#819,#821
- Generators/HTML: improved display of code tables by using semantic HTML.#854
- Squiz.Classes.ClassFileName: recommend changing the file name instead of changing the class name.#845
- This prevents unactionable recommendations due to the file name not translating to a valid PHP symbol name.
- Thanks toJuliette Reinders Folmer for the patch.
- Squiz.Functions.FunctionDeclarationArgumentSpacing: incorrect spacing after a comma followed by a promoted property has an improved error message and will now be flagged with the
SpacingBeforePropertyModifier orNoSpaceBeforePropertyModifier error codes.#792- This was previously already flagged, but using either the
SpacingBeforeHint orNoSpaceBeforeHint error code, which was misleading. - Thanks toJuliette Reinders Folmer for the patch.
- Squiz.Functions.FunctionDeclarationArgumentSpacing: the sniff will now also check the spacing after property modifiers for promoted properties in constructor methods.#792
- Squiz.WhiteSpace.ScopeKeywordSpacing: the sniff will now also check the spacing after the
final andabstract modifier keywords.#604 - The following sniff(s) have received efficiency improvements:
- Incorrectly set inline properties (in test case files) will be silently ignored again.#884
- The AbstractMethodUnitTest class will now flag duplicate test case markers in a test case file.#773
- Various housekeeping, including improvements to the tests and documentation.
Deprecated
All deprecation are slated for removal in PHP_CodeSniffer 4.0.
- Support for sniffs not implementing the PHPCS
Sniff interface. See#694. - Support for including sniffs which don't comply with the PHPCS naming conventions (by referencing the sniff file directly). See#689.
- Support for external standards named "Internal". See#799.
- The following Generator methods are now (soft) deprecated. See#755:
PHP_CodeSniffer\Generators\Text::printTitle() in favour ofPHP_CodeSniffer\Generators\Text::getFormattedTitle()PHP_CodeSniffer\Generators\Text::printTextBlock() in favour ofPHP_CodeSniffer\Generators\Text::getFormattedTextBlock()PHP_CodeSniffer\Generators\Text::printCodeComparisonBlock() in favour ofPHP_CodeSniffer\Generators\Text::getFormattedCodeComparisonBlock()PHP_CodeSniffer\Generators\Markdown::printHeader() in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedHeader()PHP_CodeSniffer\Generators\Markdown::printFooter() in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedFooter()PHP_CodeSniffer\Generators\Markdown::printTextBlock() in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedTextBlock()PHP_CodeSniffer\Generators\Markdown::printCodeComparisonBlock() in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedCodeComparisonBlock()PHP_CodeSniffer\Generators\HTML::printHeader() in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedHeader()PHP_CodeSniffer\Generators\HTML::printToc() in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedToc()PHP_CodeSniffer\Generators\HTML::printFooter() in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedFooter()PHP_CodeSniffer\Generators\HTML::printTextBlock() in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedTextBlock()PHP_CodeSniffer\Generators\HTML::printCodeComparisonBlock() in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedCodeComparisonBlock()- Thanks toJuliette Reinders Folmer for the patch.
Fixed
- Fixed bug#794 : Generators: prevent fatal error when the XML documentation does not comply with the expected format.
- Fixed bug#814 : Generic.NamingConventions.ConstructorName: prevent potential fatal errors during live coding.
- Fixed bug#816 : File::getDeclarationName(): prevent incorrect result for unfinished closures during live coding.
- Fixed bug#817 : Squiz.Classes.ValidClassName: ignore comments when determining the name to be validated.
- Fixed bug#825 : Squiz.Classes.ClassDeclaration: false positives when the next thing after a class was a function with an attribute attached.
- Fixed bug#826 : Squiz.WhiteSpace.FunctionSpacing: prevent incorrect some results when attributes are attached to a function.
- Fixed bug#827 : PEAR.Functions.FunctionDeclaration: fixer conflict over an unfinished closure during live coding.
- Fixed bug#828 : Squiz.WhiteSpace.MemberVarSpacing: allow for
readonly properties. - Fixed bug#832 : Squiz.WhiteSpace.MemberVarSpacing: prevent potential fixer conflict during live coding.
- Fixed bug#833 : Squiz.PHP.EmbeddedPhp: fixer conflict when a PHP open tag for a multi-line snippet is found on the same line as a single-line embedded PHP snippet.
- Fixed bug#833 : Squiz.PHP.EmbeddedPhp: incorrect indent calculation in certain specific situations.
- Fixed bug#835 : Generic.PHP.DisallowShortOpenTag: don't act on parse errors.
- Fixed bug#838 : Squiz.PHP.EmbeddedPhp: no new line before close tag was incorrectly enforced when a preceding OO construct or function had a trailing comment after the close curly.
- Fixed bug#840 : Squiz.WhiteSpace.MemberVarSpacing: more accurate reporting on blank lines in the property "pre-amble" (i.e. docblock, attributes).
- Fixed bug#845 : Squiz.Classes.ClassFileName: don't throw an incorrect error for an unfinished OO declaration during live coding.
- Fixed bug#865 : Setting an array property to an empty array from an XML ruleset now works correctly.
- Fixed bug#866 : Squiz.WhiteSpace.FunctionOpeningBraceSpace: XML docs were not accessible due to an issue with the file name.
Other
- A newwiki page is available to clarify the difference between a project ruleset and an external standard.
- This wiki page also contains detailed information about the naming conventions external standards must comply with.
- A newXMLLint validate action runner is available which can be used in CI to validate rulesets for PHP_CodeSniffer against the XSD.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@asispts,@braindawg,@DanielEScherzer,@peterwilsoncc
Statistics
Closed: 5 issues
Merged: 74 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.3
Changed
- Generic.ControlStructures.InlineControlStructure no longer unnecessarily listens for T_SWITCH tokens.#595
- Squiz.Functions.FunctionDeclarationArgumentSpacing: improvements to error message for
SpaceBeforeComma error.#783 - The following sniff(s) have received efficiency improvements:
- Various housekeeping, including improvements to the tests and documentation.
Fixed
- Fixed bug#620 : Squiz.Functions.FunctionDeclarationArgumentSpacing: newlines after type will now be handled by the fixer. This also prevents a potential fixer conflict.
- Fixed bug#782 : Tokenizer/PHP: prevent an "Undefined array key" notice during live coding for unfinished arrow functions.
- Fixed bug#783 : Squiz.Functions.FunctionDeclarationArgumentSpacing: new line after reference token was not flagged nor fixed.
- Fixed bug#783 : Squiz.Functions.FunctionDeclarationArgumentSpacing: new line after variadic token was not flagged nor fixed.
- Fixed bug#783 : Squiz.Functions.FunctionDeclarationArgumentSpacing: new line before/after the equal sign for default values was not flagged nor fixed when
equalsSpacing was set to0. - Fixed bug#783 : Squiz.Functions.FunctionDeclarationArgumentSpacing: fixer conflict when a new line is found before/after the equal sign for default values and
equalsSpacing was set to1. - Fixed bug#783 : Squiz.Functions.FunctionDeclarationArgumentSpacing: fixer for spacing before/after equal sign could inadvertently remove comment.
- Fixed bug#783 : Squiz.Functions.FunctionDeclarationArgumentSpacing: fixer will now handle comments between the end of a parameter and a comma more cleanly.
- Fixed bug#784 : Squiz.WhiteSpace.FunctionSpacing: prevent fixer conflict when a multi-line docblock would start on the same line as the function close curly being examined.
Statistics
Closed: 0 issues
Merged: 14 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.2
Changed
- Generators/HTML + Markdown: the output will now be empty (no page header/footer) when there are no docs to display.#687
- This is in line with the Text Generator which already didn't produce output if there are no docs.
- Thanks toJuliette Reinders Folmer for the patch.
- Generators/HTML: only display a Table of Contents when there is more than one sniff with documentation.#697
- Generators/HTML: improved handling of line breaks in
<standard> blocks.#723 - Generators/Markdown: improved compatibility with the variety of available markdown parsers.#722
- Generators/Markdown: improved handling of line breaks in
<standard> blocks.#737- This prevents additional paragraphs from being displayed as code blocks.
- Thanks toJuliette Reinders Folmer for the patch.
- Generic.NamingConventions.UpperCaseConstantName: the exact token containing the non-uppercase constant name will now be identified with more accuracy.#665
- Generic.Functions.OpeningFunctionBraceKernighanRitchie: minor improvement to the error message wording.#736
- Various housekeeping, including improvements to the tests and documentation.
Fixed
- Fixed bug#527 : Squiz.Arrays.ArrayDeclaration: short lists within a foreach condition should be ignored.
- Fixed bug#665 : Generic.NamingConventions.UpperCaseConstantName: false positives and false negatives when code uses unconventional spacing and comments when calling
define(). - Fixed bug#665 : Generic.NamingConventions.UpperCaseConstantName: false positive when a constant named
DEFINE is encountered. - Fixed bug#665 : Generic.NamingConventions.UpperCaseConstantName: false positive for attribute class called
define. - Fixed bug#665 : Generic.NamingConventions.UpperCaseConstantName: false positive when handling the instantiation of a class named
define. - Fixed bug#688 : Generators/Markdown could leave error_reporting in an incorrect state.
- Fixed bug#698 : Generators/Markdown : link in the documentation footer would not parse as a link.
- Fixed bug#738 : Generators/Text: stray blank lines after code sample titles.
- Fixed bug#739 : Generators/HTML + Markdown: multi-space whitespace within a code sample title was folded into a single space.
Other
- On December 1st, one year after the repo was abandoned and revived, aretrospective of the past year was published for funders.
- This retrospective is publicly available and also provides some insights into what's to come in the new year.
Statistics
Closed: 2 issues
Merged: 52 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.1
Changed
- Output from the
--generator=... feature will respect the OS-expected EOL char in more places.#671 - Various housekeeping, including improvements to the tests and documentation.
Fixed
- Fixed bug#674 : Generic.WhiteSpace.HereNowdocIdentifierSpacing broken XML documentation
- Fixed bug#675 : InvalidArgumentException when a ruleset includes a sniff by file name and the included sniff does not comply with the PHPCS naming conventions.
- Notwithstanding this fix, it is strongly recommended to ensure custom sniff classes comply with the PHPCS naming conventions.
- Thanks toJuliette Reinders Folmer for the patch.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@MatmaRex
Statistics
Closed: 1 issue
Merged: 11 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.0
Added
- Runtime support for PHP 8.4. All known PHP 8.4 deprecation notices have been fixed.
- Syntax support for new PHP 8.4 features will follow in a future release.
- If you find any PHP 8.4 deprecation notices which were missed, please report them.
- Thanks toJuliette Reinders Folmer for the patches.
- Tokenizer support for PHP 8.3 "yield from" expressions with a comment between the keywords.#529,#647
- Sniffs explicitly handling T_YIELD_FROM tokens may need updating. The PR description contains example code for use by sniff developers.
- Additionally, the following sniff has been updated to support "yield from" expressions with comments:
- Generic.WhiteSpace.LanguageConstructSpacing
- Thanks toJuliette Reinders Folmer for the patch.
- New
Generic.WhiteSpace.HereNowdocIdentifierSpacing sniff.#586,#637- Forbid whitespace between the
<<< and the identifier string in heredoc/nowdoc start tokens. - Thanks toJuliette Reinders Folmer for the patch.
- New
Generic.Strings.UnnecessaryHeredoc sniff.#633- Warns about heredocs without interpolation or expressions in the body text and can auto-fix these to nowdocs.
- Thanks toJuliette Reinders Folmer for the patch.
- Documentation for the following sniffs:
Changed
- The Common::getSniffCode() method will now throw an InvalidArgumentException exception if an invalid
$sniffClass is passed.#524,#625 - Documentation generated using the
--generator=... feature will now always be presented in natural order based on the sniff name(s).#668 - Minor improvements to the display of runtime information.#658
- Squiz.Commenting.PostStatementComment: trailing annotations in PHP files will now be reported under a separate, non-auto-fixable error code
AnnotationFound.#560,#627- This prevents (tooling related) annotations from taking on a different meaning when moved by the fixer.
- The separate error code also allows for selectively excluding it to prevent the sniff from triggering on trailing annotations, while still forbidding other trailing comments.
- Thanks toRodrigo Primo for the patch.
- Squiz.ControlStructures.ForEachLoopDeclaration: the
SpacingAfterOpen error code has been replaced by theSpaceAfterOpen error code. The latter is a pre-existing code. The former appears to have been a typo.#582 - The following sniff(s) have received efficiency improvements:
- Various housekeeping, including improvements to the tests and documentation.
Fixed
- Fixed bug#3808 : Generic.WhiteSpace.ScopeIndent would throw false positive for tab indented multi-token yield from expression.
- Fixed bug#630 : The tokenizer could inadvertently transform "normal" parentheses to DNF parentheses, when a function call was preceded by a switch-case / alternative syntax control structure colon.
- Fixed bug#645 : On PHP 5.4, if yield was used as the declaration name for a function declared to return by reference, the function name would incorrectly be tokenized as T_YIELD instead of T_STRING.
- Fixed bug#647 : Tokenizer not applying tab replacement in single token "yield from" keywords.
- Fixed bug#647 : Generic.WhiteSpace.DisallowSpaceIndent did not flag space indentation in multi-line yield from.
- Fixed bug#647 : Generic.WhiteSpace.DisallowTabIndent did not flag tabs inside yield from.
- Fixed bug#652 : Generic.NamingConventions.ConstructorName: false positives for PHP-4 style calls to PHP-4 style parent constructor when a method with the same name as the parent class was called on another class.
- Fixed bug#652 : Generic.NamingConventions.ConstructorName: false negatives for PHP-4 style calls to parent constructor for function calls with whitespace and comments in unconventional places.
- Fixed bug#653 : Generic.Classes.DuplicateClassName : the sniff did not skip namespace keywords used as operators, which could lead to false positives.
- Fixed bug#653 : Generic.Classes.DuplicateClassName : sniff going into an infinite loop during live coding.
- Fixed bug#653 : Generic.Classes.DuplicateClassName : false positives/negatives when a namespace declaration contained whitespace or comments in unconventional places.
- Fixed bug#653 : Generic.Classes.DuplicateClassName : namespace for a file going in/out of PHP was not remembered/applied correctly.
Statistics
Closed: 4 issues
Merged: 42 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
This PR was automatically generated byConductor.
The PR contains the changes generated by running the following command:
Changelog
squizlabs/php_codesniffer (Source:GitHub Releases))
3.13.0
Added
finalproperties to the following sniffs:Changed
gotolanguage construct keyword.#917finalmodifier keyword is placed before a visibility keyword.#950FinalAfterVisibilityerror code.--reportsCLI flag.#1078Deprecated
PHP_CodeSniffer\Sniffs\Sniffinterface.#891-q(=quiet) CLI flag.Fixed
Other
Calling all testers!
The first beta release for PHP_CodeSniffer 4.0 has been tagged. Please help by testing the beta release and reporting any issues you run into.
Upgrade guides for bothruleset maintainers/end-users, as well as forsniff developers and integrators, have been published to the Wiki to help smooth the transition.
Statistics
Closed: 3 issues
Merged: 29 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.12.2
Added
finalproperties to the following sniffs:Changed
short_open_tagsetting.Fixed
@paramtags.finalclasses.Diff+ theCodereports are requested and caching is on.Other
Read the open invitation (#924) for all the details.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@devfrey
Statistics
Closed: 1 issues
Merged: 36 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.12.1
Added
Changed
Deprecated
Generic.Functions.CallTimePassByReferencesniff. See#921.Fixed
InvalidArgumentExceptions when displaying verbose information.?in nullable types for readonly properties.gotowas not recognized as a terminating statement for a case/default in a switch control structure.Other
Read the open invitation (#924) for all the details.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@costdev
Statistics
Closed: 0 issues
Merged: 24 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.12.0
Added
is_finalarray index in the return value.#834Changed
-h(Help) option now contains a more extensive list of "config" options which can be set.#809--sniffsor--excludecommand line arguments.#344--generatorcommand line argument.#709,#771titleattribute is missing, the documentation generation will now fall back to the sniff name as the title.#820SpacingBeforePropertyModifierorNoSpaceBeforePropertyModifiererror codes.#792SpacingBeforeHintorNoSpaceBeforeHinterror code, which was misleading.finalandabstractmodifier keywords.#604Internal.PropertyDoesNotExisterror code.Deprecated
All deprecation are slated for removal in PHP_CodeSniffer 4.0.
Sniffinterface. See#694.PHP_CodeSniffer\Generators\Text::printTitle()in favour ofPHP_CodeSniffer\Generators\Text::getFormattedTitle()PHP_CodeSniffer\Generators\Text::printTextBlock()in favour ofPHP_CodeSniffer\Generators\Text::getFormattedTextBlock()PHP_CodeSniffer\Generators\Text::printCodeComparisonBlock()in favour ofPHP_CodeSniffer\Generators\Text::getFormattedCodeComparisonBlock()PHP_CodeSniffer\Generators\Markdown::printHeader()in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedHeader()PHP_CodeSniffer\Generators\Markdown::printFooter()in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedFooter()PHP_CodeSniffer\Generators\Markdown::printTextBlock()in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedTextBlock()PHP_CodeSniffer\Generators\Markdown::printCodeComparisonBlock()in favour ofPHP_CodeSniffer\Generators\Markdown::getFormattedCodeComparisonBlock()PHP_CodeSniffer\Generators\HTML::printHeader()in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedHeader()PHP_CodeSniffer\Generators\HTML::printToc()in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedToc()PHP_CodeSniffer\Generators\HTML::printFooter()in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedFooter()PHP_CodeSniffer\Generators\HTML::printTextBlock()in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedTextBlock()PHP_CodeSniffer\Generators\HTML::printCodeComparisonBlock()in favour ofPHP_CodeSniffer\Generators\HTML::getFormattedCodeComparisonBlock()Fixed
readonlyproperties.[0 => ''].Other
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@asispts,@braindawg,@DanielEScherzer,@peterwilsoncc
Statistics
Closed: 5 issues
Merged: 74 pull requests
Follow@phpcs on Mastodon or@PHP_CodeSniffer on X to stay informed.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.3
Changed
SpaceBeforeCommaerror.#783Fixed
equalsSpacingwas set to0.equalsSpacingwas set to1.Statistics
Closed: 0 issues
Merged: 14 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.2
Changed
<standard>blocks.#723<standard>blocks.#737Fixed
define().DEFINEis encountered.define.define.Other
Statistics
Closed: 2 issues
Merged: 52 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.1
Changed
--generator=...feature will respect the OS-expected EOL char in more places.#671Fixed
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@MatmaRex
Statistics
Closed: 1 issue
Merged: 11 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
3.11.0
Added
Generic.WhiteSpace.HereNowdocIdentifierSpacingsniff.#586,#637<<<and the identifier string in heredoc/nowdoc start tokens.Generic.Strings.UnnecessaryHeredocsniff.#633Changed
$sniffClassis passed.#524,#625--generator=...feature will now always be presented in natural order based on the sniff name(s).#668AnnotationFound.#560,#627SpacingAfterOpenerror code has been replaced by theSpaceAfterOpenerror code. The latter is a pre-existing code. The former appears to have been a typo.#582Fixed
Statistics
Closed: 4 issues
Merged: 42 pull requests
If you like to stay informed about releases and more, follow@phpcs on Mastodon or@PHP_CodeSniffer on X.
Please considerfunding the PHP_CodeSniffer project. If you already do so: thank you!
Task options
If you close the PR, the task will be skipped and Conductor will schedule the next task. Clicking the "Skip" button in the UI has the same effect. Conductor won't attempt to update the dependency to this exact version again but it will schedule updates to newer versions.
Powered byPrivate Packagist