Skip to content

Latest commit

History

History
359 lines (246 loc) 路 15.4 KB

CHANGELOG.md

File metadata and controls

359 lines (246 loc) 路 15.4 KB

Changelog

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.

Unreleased

For a full diff see 0.14.1...master.

For a full diff see 0.14.0...0.14.1.

Fixed

  • Removed an inappropriate replace configuration from composer.json (#161), by @localheinz

For a full diff see 0.13.0...0.14.0.

Changed

  • Allowed installation of phpstan/phpstan:~0.12.0 (#147), by @localheinz

  • Renamed vendor namespace Localheinz to Ergebnis after move to @ergebnis (#157), by @localheinz

    Run

    $ composer remove localheinz/phpstan-rules
    

    and

    $ composer require ergebnis/phpstan-rules
    

    to update.

    Run

    $ find . -type f -exec sed -i '.bak' 's/Localheinz\\PHPStan/Ergebnis\\PHPStan/g' {} \;
    

    to replace occurrences of Localheinz\PHPStan with Ergebnis\PHPStan.

    Run

    $ find -type f -name '*.bak' -delete
    

    to delete backup files created in the previous step.

  • Moved paramaters into ergebnis section to prevent conflicts with global parameters (#158), by @localheinz

    Where previously phpstan.neon looked like the following

    parameters:
        allowAbstractClasses: true
        classesAllowedToBeExtended: []
        classesNotRequiredToBeAbstractOrFinal: []
        interfacesImplementedByContainers:
            - Psr\Container\ContainerInterface

    these parameters now need to be moved into an ergebnis section:

     parameters:
    -    allowAbstractClasses: true
    -    classesAllowedToBeExtended: []
    -    classesNotRequiredToBeAbstractOrFinal: []
    -    interfacesImplementedByContainers:
    -        - Psr\Container\ContainerInterface
    +    ergebnis:
    +        allowAbstractClasses: true
    +        classesAllowedToBeExtended: []
    +        classesNotRequiredToBeAbstractOrFinal: []
    +        interfacesImplementedByContainers:
    +            - Psr\Container\ContainerInterface

Fixed

For a full diff see 0.12.2...0.13.0.

Added

  • Added Methods\PrivateInFinalClassRule which reports an error when a method in a final class is protected when it could be private (#126, by @localheinz

For a full diff see 0.12.1...0.12.2.

Fixed

  • Started ignoring interfaces from analysis by Methods\FinalInAbstractClassRule to avoid inappropriate errors (#132, by @localheinz

For a full diff see 0.12.0...0.12.1.

Fixed

  • Started resolving class name in type declaration before attempting to analyze it in the Methods\NoParameterWithContainerTypeDeclarationRule to avoid errors where class self is not found (#128, by @localheinz

For a full diff see 0.11.0...0.12.0.

Added

  • Added Methods\NoParameterWithContainerTypeDeclarationRule, which reports an error when a method has a type declaration that corresponds to a known dependency injection container or service locator (#122, by @localheinz
  • Added Methods\FinalInAbstractClassRule, which reports an error when a concrete public or protected method in an abstract class is not final (#123, by @localheinz

For a full diff see 0.10.0...0.11.0.

Added

  • Added Files\DeclareStrictTypesRule, which reports an error when a PHP file does not have a declare(strict_types=1) declaration (#79
  • Added Expressions\NoEmptyRule, which reports an error when the language construct empty() is used (#110, by @localheinz
  • Added Expressions\NoEvalRule, which reports an error when the language construct eval() is used (#112, by @localheinz
  • Added Expressions\NoErrorSuppressionRule, which reports an error when @ is used to suppress errors (#113, by @localheinz
  • Added Expressions\NoCompactRule, which reports an error when the function compact() is used (#116, by @localheinz
  • Added Statements\NoSwitchRule, which reports an error when the statement switch() is used (#117, by @localheinz

Changed

For a full diff see 0.9.1...0.10.0.

Changed

Fixed

For a full diff see 0.9.0...0.9.1.

Changed

For a full diff see 0.8.1...0.9.0.

Changed

  • Adjusted Classes\FinalRule to ignore Doctrine entities when they are annotated (#84, by @localheinz

For a full diff see 0.8.0...0.8.1.

Fixed

For a full diff see 0.7.1...0.8.0.

Added

  • Added Expressions\NoIssetRule, which reports an error when the language construct isset() is used (#81, by @localheinz

For a full diff see 0.7.0...0.7.1.

Changed

  • Configured Classes\NoExtendsRule to allow a set of default classes to be extended (#73, by @localheinz

For a full diff see 0.6.0...0.7.0.

Added

  • Added Classes\NoExtendsRule, which reports an error when a class extends a class that is not allowed to be extended (#68, by @localheinz

For a full diff see 0.5.0...0.6.0.

Added

  • Allow installation with phpstan/phpstan:~0.11.0 (#65, by @localheinz

For a full diff see 0.4.0...0.5.0.

Added

  • Added Methods\NoConstructorParameterWithDefaultValueRule, which reports an error when a constructor of an anonymous class or a class has a parameter with a default value (#45, by @localheinz
  • Added parameters $allowAbstractClasses and $classesNotRequiredToBeAbstractOrFinal to allow configuration of ClassesFinalRule` (#51, by @localheinz

Removed

  • Removed Classes\AbstractOrFinalRule after merging behaviour into Classes\FinalRule (#51, by @localheinz
  • Removed default values from constructor of Classes\FinalRule (#53, by @localheinz

For a full diff see 0.3.0...0.4.0

Changed

  • Removed double-quotes from error messages to be more consistent with error messages generated by phpstan/phstan (#39, by @localheinz
  • Modified wording and placement of method, function, and parameter names in error messages to be more consistent with error messages generated by phpstan/phstan (#42, by @localheinz

For a full diff see 0.2.0...0.3.0

Added

  • Added Functions\NoNullableReturnTypeDeclarationRule, which reports an error when a function has a nullable return type declaration, and Methods\NoNullableReturnTypeDeclarationRule, which reports an error when a method declared in an anonymous class, a class, or an interface has a nullable return type declaration (#16, by @localheinz
  • Added Closures\NoParameterWithNullDefaultValueRule, which reports an error when a closure has a parameter with null as default value (#26, by @localheinz
  • Added Closures\NoNullableReturnTypeDeclarationRule, which reports an error when a closure has a nullable return type declaration (#29, by @localheinz
  • Added Functions\NoParameterWithNullDefaultValueRule, which reports an error when a function has a parameter with null as default value (#31, by @localheinz
  • Added Methods\NoParameterWithNullDefaultValueRule, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with null as default value (#32, by @localheinz
  • Added Closures\NoParameterWithNullableTypeDeclarationRule, which reports an error when a closure has a parameter with a nullable type declaration (#33, by @localheinz
  • Added Functions\NoParameterWithNullableTypeDeclarationRule, which reports an error when a function has a parameter with a nullable type declaration (#34, by @localheinz
  • Added Methods\NoParameterWithNullableTypeDeclarationRule, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with a nullable type declaration (#35, by @localheinz
  • Extracted rules.neon, so you can easily enable all rules by including it in your phpstan.neon (#37, by @localheinz

For a full diff see 0.1.0...0.2.0

Added

  • Added Classes\FinalRule, which reports an error when a non-anonymous class is not final, (#4, by @localheinz

Changed

  • Added an $excludeClassNames argument to the constructors of Classes\AbstractOrFinalRule and Classes\FinalRule to allow whitelisting of classes, (#11, by @localheinz

For a full diff see 362c7ea...0.1.0.

Added

  • Added Classes\AbstractOrFinalRule, which reports an error when a non-anonymous class is neither abstract nor final, (#1), by @localheinz