PHPStan extensions to help test CakePHP 2 projects with PHPStan
- PHP 7.4
- phpstan/phpstan 1.9+
- cakephp/cakephp 2.x
Installation is best done through composer:
composer require --dev ariddlestone/phpstan-cakephp2You will need to make sure the extension is included in your phpstan config:
# phpstan.neon
includes:
  - vendor/ariddlestone/phpstan-cakephp2/extension.neonIf you have behavior classes in odd locations (perhaps in a vendor directory) you will need to add those locations to your configuration. For example:
# phpstan.neon
parameters:
  ModelBehaviorsExtension:
    behaviorPaths:
      - vendor/my-vendor/my-plugin/src/Model/Behavior/*.phpSee extension.neon for the default list of behavior locations.
The following features are added to PHPStan:
- Treat behavior methods as extra methods on all models ($model->behaviorMethod())
- Treat controller properties named after model classes as instances of those classes ($controller->Model)
- Treat controller properties named after component classes as instances of those classes ($controller->Component)
- Treat component properties names after component classes as instances of those classes ($component->Component)
- Treat ClassRegistry::init($className)as returning an instance of$classNamewhere possible