All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add support for PHP 8.4
- Dropped support for PHP 8.0
- Add
catalog-info.yaml
- Remove
.project-inventory.json
- Add support for
slevomat/coding-standard:^8.15
, replace usages ofUseStatementHelper::isAnonymousFunctionUse
withUseStatementHelper::!isImportUse
- Add support for PHP 8.3
- Add support for v1 versions of the
dealerdirect/phpcodesniffer-composer-installer
package
- Dropped support for PHP 7.4
- Increase minimum version of
slevomat/coding-standard
dependency to 7.1 (fixes #4) - Remove
version
property fromcomposer.json
- Add missing PHP 8.2 service to Lando configuration
- Change ruleset name to start with a capital
- 40: Add the
Generic.Formatting.SpaceAfterNot
rule with spacing 0
- Rename to IODigital namespace and iO ruleset
- 41 Support for PHP 8.2
- Updated
ramsey/composer-install
to version 2 - 39: Change 2022 changelog entries by adding link to respective PR
- 42 Support for PHP 7.3
- Fixed tests by turning off the cache in tests
- 36: Add
assert()
to forbidden functions - 35: Add
exec()
to forbidden functions - 35: Add
passthru()
to forbidden functions - 35: Add
shell_exec()
to forbidden functions - 35: Add
system()
to forbidden functions - 34: Add
eval()
to forbidden functions - 33: Add
serialize()
andunzerialize()
to forbidden functions
- 32: Add the
SlevomatCodingStandard.Classes.ModernClassNameReference
rule
- 29: Add
ISAAC.ControlStructures.DisallowGotoOperator
rule - 28: Add the
Generic.PHP.BacktickOperator
rule - 24: Add
SlevomatCodingStandard.Variables.UnusedVariable
rule
- 30: Change the
Generic.PHP.ForbiddenFunctions
array value into a more readable and expandable form - 25: Disallow all superglobals by replacing the
MySource.PHP.GetRequestData
rule by the more completeSlevomatCodingStandard.Variables.DisallowSuperGlobalVariable
rule
- 27: Remove explicit inclusion of the
Squiz.WhiteSpace.SuperfluousWhitespace
rule - 26: Remove explicit inclusion of the
Generic.Files.LineEndings
rule - 23: Remove explicit inclusion of the
PSR12.Operators.OperatorSpacing
rule
- Remove the
Generic.CodeAnalysis.UselessOverridingMethod
rule
- Add GitHub Action
- Add support for PHP 8.1
- Upgrade PHPStan to version 1
- Upgrade PHPUnit to version 9
- Remove support for PHP 7.2
- Adhere to own coding standard and update PHP_CodeSniffer configuration to the latest standards
- Add sniff to require nullable type for parameters with a default null value.
SlevomatCodingStandard.TypeHints.NullableTypeForNullDefaultValue
- Add sniff to disallow square bracket style (
...[]
) array type hint in favor of the angular bracket style (array<...>
).
- Replace the deprecated
ObjectCalisthenics.Files.FunctionLength
rule bySlevomatCodingStandard.Functions.FunctionLength
- Replace the deprecated
ObjectCalisthenics.Metrics.MaxNestingLevel
rule byGeneric.Metrics.NestingLevel
- Replace the deprecated
ObjectCalisthenics.Metrics.PropertyPerClassLimit
rule byISAAC.Classes.PropertyPerClassLimit
- Replace the deprecated
ObjectCalisthenics.Metrics.MethodPerClassLimit
rule byISAAC.Classes.MethodPerClassLimit
- Update slevomat/coding-standard from v6 to v7
- Update squizlabs/php_codesniffer from v3.5 to v3.6
- Fixed the test runner by only executing the tested sniff
- Fixed 'constant not found' PHPStan errors
- Resolve phpcs sniff violations in test classes when running phpcs using PHP 7.4 or 8.0
- Resolve phpcs sniff violations in BaseTestCase class
- Add .phpunit.result.cache to the .gitignore
- Resolve phpunit error when using the --filter option
- Removed object-calisthenics/phpcs-calisthenics-rules
- Removed explicit reference to ISAAC rules (the rules added by this packages are included automatically)
- Removed duplicate class constant visibility check (removed SlevomatCodingStandard.Classes.ClassConstantVisibility in favor of PSR12.Properties.ConstantVisibility which is part of the PSR12 ruleset)
- Add sniff to only allow linux line endings.
- Add sniff to disallow spaces surrounding an object operator.
- Add PHP 8.0 support
- Added LICENSE.md
- Changed license to MIT
- Removed ISAAC company-specific instructions from README
- Update dealerdirect/phpcodesniffer-composer-installer to ^0.7
- Mark the tests directory and the .gitattributes and .gitignore files as export-ignore
- Add sniff to require native property type declarations if possible.
- Use 'conflict' instead of 'replace'. Otherwise, when switching branches after installing the new version, running composer install will not install the old version of the package again.
- Add sniff to require use statements to be placed on a single line.
- Rename 'ISAAC PHP_CodeSniffer' to 'ISAAC PHP_CodeSniffer Standard'
- Downgrade PHPUnit from ^9.1 to ^8.5 to allow package development with PHP 7.2
- Add instructions on ignoring sniff violations
- Allow imports to exceed the line length limit
- Disallow group use declarations
- Update PHPUnit dev-dependency to version 9.1
- Update dealerdirect/phpcodesniffer-composer-installer to version 0.6
- Fix typo in changelog of version 14.0.0: 'Drop support for PHP 7.2' should be 'Drop support for PHP 7.1'
- Explicitly state the supported minor PHP-versions in composer.json
- Fix autoload-dev (this caused problems while running the tests)
- Configure the supported PHP versions of this package in phpcs.xml
- Update PHPStan (dev-requirement of this package)
- PHPCompatibility
- Sniff to disallow spaces when passing variables as reference
- Fixed wrongly typed sniff names
- Update slevomat/coding-standard to version 6
- Drop support for PHP 7.1
- Included phpstan
- Code now adheres own codestyle
- Add squizlabs/php_codesniffer and sebastian/recursion-context as root dependencies in composer.json
- Sniff to disallow multiple statement alignment
- Fix code to adhere to the coding standard
- PSR-12 ruleset
- PSR-2 ruleset
- Sniff to require trailing commas in multi-line arrays
- Sniff to require a closure to be static when it does not use
$this
- Sniff to disallow use of double quotes when it is not required
- Require importing global functions and constants
- Sniff to require exactly one space after casting expression.
- slevomat/coding-standard from ^4.6 to ^5.0
- object-calisthenics/phpcs-calisthenics-rules from ^3.4 to ^3.5
- object-calisthenics/phpcs-calisthenics-rules from dev-dependencies
- Tagged new version because the v7.0.0 was placed on the develop branch instead of the master branch.
- Sniff to check return type hint whitespace
- Sniff to check for useless constant type hints
- Sniff to check spacing around functions
- Sniff to enforce camel caps for (member) variables
- Sniff to check operator spacing
- Sniff to disallow is_null()
- Sniff to disallow blank lines at the begin and end of classes, interfaces and traits
- Sniff to disallow whitespace on blank lines
- Sniff to check for unused private elements
- Sniff to check alphabetically sorted uses
- Sniff to disallow long array syntax
- Sniff for object calisthenics: maxFunctionLength of 25 lines
- Sniff to detect incorrect PHP syntax
- (focus on maintainability, readability, testability and comprehensibility):
- number of methods per class
- number of properties per class
- cyclomatic complexity
- max nesting level
- dealerdirect/phpcodesniffer-composer-installer to 0.5.0+
- Sniff to disallow empty()
- Sniff to disallow isset()
- Sniff to disallow null coalesce operator
- Created the ISAAC ruleset to be included, instead of extending the phpcs.xml file
- Sniff to disallow loose equal operator (
===
over==
) - Sniff to disallow yoda comparison (
if (true === something()))
) - Sniff to enforce typecasting with short notations (
(int)
over(integer)
,(bool)
over(boolean)
, etc.) - Sniff to enforce strict type declaration
- Sniff to enforce nicely indented arrays
- PHP_CodeSniffer Standards Composer Installer Plugin: The package depends on codesniffer and automatically configures its installed_paths config setting. We no longer have to overwrite that setting in order to get our ruleset to work. This enables additional rulesets to be defined on the project level without needing to think about when to set the installed_paths key.
- Added changelog