All notable changes to this project will be documented in this file, in reverse chronological order by release.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
3.11.0 - 2025-04-07
SlevomatCodingStandard.TypeHints.ClassConstantTypeHintsniff- require typed class constants on PHP 8.3+
slevomat/coding-standardupgraded to^8.16.0squizlabs/php_codesnifferupgraded to^3.12.0- Replaced
SlevomatCodingStandard.TypeHints.UnionTypeHintFormatsniff withSlevomatCodingStandard.TypeHints.DNFTypeHintFormatsniff
- Support for PHP 7.2 and 7.3 (rulesets are still available for BC)
3.10.3 - 2025-02-23
- Compatibility with slevomat/coding-standard:^8.16.0
3.10.2 - 2024-06-19
- Support for PHP 8.4
SlevomatCodingStandard.Arrays.DisallowImplicitArrayCreation- superseded by PHPStan (strict rules)Squiz.Commenting.FunctionComment.InvalidReturnVoid- superseded by PHPStan
3.10.1 - 2024-02-20
Squiz.Commenting.FunctionComment.MissingParamType- superseded by PHPStan
3.10.0 - 2023-12-10
- Support for PHP 8.3
- Rulesets for PHP 8.2 and 8.3
squizlabs/php_codesnifferupgraded to^3.8.0
3.9.1 - 2023-12-09
JumpStatementspropertycontrolStructuresrenamed tojumpStatements- Fixes
ERROR: Ruleset invalid. Property "controlStructures" does not exist on sniff SlevomatCodingStandard.ControlStructures.JumpStatementsSpacing
- Fixes
3.9.0 - 2023-10-14
Generic.VersionControl.GitMergeConflict- checks whether unresolved git conflict is in the file
SlevomatCodingStandard.Functions.NamedArgumentSpacing- checks spacing in named argument
slevomat/coding-standardupgraded to^8.14.0
3.8.0 - 2023-06-26
SlevomatCodingStandard.Files.TypeNameMatchesFileName- just to ensure match between file and (non fully qualified) class name
- it can still be overridden by custom settings
Squiz.Commenting.FunctionComment.MissingParamName- superseded by PHPStan
SlevomatCodingStandard.ControlStructures.DisallowShortTernaryOperator- superseded by PHPStan
3.7.1 - 2023-06-08
PSR1.Classes.ClassDeclarationsniff- superseded by optional
SlevomatCodingStandard.Files.TypeNameMatchesFileNamesniff
- superseded by optional
Generic.PHP.DeprecatedFunctions- use
phpstan/phpstan-deprecation-rulesinstead
- use
SlevomatCodingStandard.TypeHints.PropertyTypeHint.MissingAnyTypeHint- use
phpstan/phpstaninstead
- use
3.7.0 - 2023-05-14
SlevomatCodingStandard.Arrays.ArrayAccesssniff
slevomat/coding-standardupgraded to^8.12.0
3.6.0 - 2023-04-24
SlevomatCodingStandard.Commenting.AnnotationNamesniff
slevomat/coding-standardupgraded to^8.11.0
SlevomatCodingStandard.Functions.StrictCall- Use
phpstan/phpstan-strict-rulesinstead
- Use
3.5.0 - 2023-04-10
SlevomatCodingStandard.Classes.DisallowStringExpressionPropertyFetchsniffSlevomatCodingStandard.Strings.DisallowVariableParsingsniff- New Composer keywords to suggest --dev during require
- Forbidden function aliases:
diskfreespace()->disk_free_space()ftp_quit->ftp_closeget_required_files->get_included_filesgzputs->gzwriteldap_close->ldap_unbindldap_modify->ldap_mod_replacemsgpack_pack->msgpack_serializemsgpack_unpack->msgpack_unserializeodbc_do->odbc_execodbc_field_precision->odbc_field_lenopenssl_get_privatekey->openssl_pkey_get_privateopenssl_get_publickey->openssl_pkey_get_publicimap_create->imap_createmailboximap_fetchtext->imap_bodyimap_header->imap_headerinfoimap_listmailbox->imap_listimap_listsubscribed->imap_lsubimap_rename->imap_renamemailboximap_scan->imap_listscanimap_scanmailbox->imap_listscanpcntl_errno->pcntl_get_last_errorposix_errno->posix_get_last_errorread_exif_data->exif_read_datasession_commit->session_write_closeset_file_buffer->stream_set_write_buffersocket_getopt->socket_get_optionsocket_setopt->socket_set_optionsrand->mt_sranduser_error->trigger_error
slevomat/coding-standardupgraded to^8.10.0
delete()as an alias ofunset(), because it does not exist
3.4.0 - 2023-03-28
SlevomatCodingStandard.Classes.EnumCaseSpacingsniffSlevomatCodingStandard.Classes.RequireSelfReferencesniffSlevomatCodingStandard.ControlStructures.DisallowTrailingMultiLineTernaryOperatorsniff
slevomat/coding-standardupgraded to^8.9.0
3.3.5 - 2023-02-07
- Moved IntelliJ files from src/.idea to ide-config/.idea to prevent them being picked up by static analysis tools
3.3.4 - 2022-12-12
Squiz.Commenting.VariableComment.VarOrdererror- redundant and colliding with
superfluous
SlevomatCodingStandard.Commenting.DocCommentSpacing.IncorrectAnnotationsGroup
- redundant and colliding with
superfluous
3.3.3 - 2022-12-09
- Composer
- allows PHP 8.2
3.3.2 - 2022-11-04
SlevomatCodingStandard.Commenting.InlineDocCommentDeclarationallows@varabovereturn
3.3.1 - 2022-11-03
SlevomatCodingStandard.Commenting.DocCommentSpacingsupports sorting ofassert,param-out,this-outandself-outand theirphpstan-andpsalm-prefixed variants
Generic.Commenting.DocComment- redundant functions of superfluous
Squiz.WhiteSpace.SuperfluousWhitespaceandSlevomatCodingStandard.Commenting.DocCommentSpacing
- redundant functions of superfluous
3.3.0 - 2022-10-05
SlevomatCodingStandard.Attributes.AttributeAndTargetSpacingsniffSlevomatCodingStandard.Attributes.DisallowAttributesJoiningsniffSlevomatCodingStandard.Attributes.DisallowMultipleAttributesPerLinesniffSlevomatCodingStandard.Attributes.RequireAttributeAfterDocCommentsniff
slevomat/coding-standardupgraded to^8.6.0
3.2.1 - 2022-10-05
SlevomatCodingStandard.Files.LineLength- ignores comments
3.2.0 - 2022-09-22
SlevomatCodingStandard.PHP.RequireExplicitAssertion- Option
enableIntegerRangesis enabled - Option
enableAdvancedStringTypesis enabled
- Option
slevomat/coding-standardupgraded to^8.5.0
3.1.2 - 2022-07-17
SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingAnyTypeHint- use
phpstan/phpstaninstead - PHPStan does the same check and respects inheritance
- use
SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingAnyTypeHint- use
phpstan/phpstaninstead - PHPStan does the same check and respects inheritance
- use
3.1.1 - 2022-07-10
SlevomatCodingStandard.Operators.DisallowEqualOperatorssniff- use
phpstan/phpstan-strict-ruleswith bleeding edge instead
- use
3.1.0 - 2022-07-08
SlevomatCodingStandard.Classes.BackedEnumTypeSpacingsniff- Checks number of spaces before
:and before type.
- Checks number of spaces before
slevomat/coding-standardupgraded to^8.2.0SlevomatCodingStandard.Classes.PropertyDeclarationsniff- Checks promoted properties
- Checks number of spaces between property modifiers
3.0.0 - 2022-06-17
- PHP 8.1 support
slevomat/coding-standardupgraded to^8.0.0
- PHP 7.1 support