This extension provides the following features:
- Checks if the string argument passed to config()ormodel()function is a valid class string extendingCodeIgniter\Config\BaseConfigorCodeIgniter\Model, respectively. This can be turned off by settingcodeigniter.checkArgumentTypeOfFactories: falsein yourphpstan.neon. For fine-grained control, you can individually choose which factory function to disable usingcodeigniter.checkArgumentTypeOfConfigandcodeigniter.checkArgumentTypeOfModel. NOTE: Settingcodeigniter.checkArgumentTypeOfFactories: falsewill effectively bypass the two specific options.
- Checks if the string argument passed to service()orsingle_service()function is a valid service name. This can be turned off by settingcodeigniter.checkArgumentTypeOfServices: falsein yourphpstan.neon.
- Disallows instantiating cache handlers using newand suggests to use theCacheFactoryclass instead.
- Disallows instantiating FrameworkExceptionclasses usingnew.
- Disallows direct re-assignment or access of $_SERVERand$_GETand suggests to use theSuperglobalsclass instead.
- Disallows use of ::classfetch onconfig()andmodel()and suggests to use the short form of the class instead.
To use this extension, require it in Composer:
composer require --dev codeigniter/phpstan-codeigniter
If you also install phpstan/extension-installer then you're all set!
Manual installation
If you don't want to use phpstan/extension-installer, include extension.neon in your project's PHPStan config:
includes:
    - vendor/codeigniter/phpstan-codeigniter/extension.neonAny contributions are welcome.
If you want to see a new rule or extension specific to CodeIgniter, please open a feature request. If you can contribute the code yourself, please open a pull request instead.
Before reporting any bugs, please check if the bug occurs only if using this extension with PHPStan. If the bug is reproducible in PHPStan alone, please open a bug report there instead. Thank you!
PHPStan CodeIgniter is an open source library licensed under MIT.