This extension provides the following features:
- Checks if the string argument passed to
config()
ormodel()
function is a valid class string extendingCodeIgniter\Config\BaseConfig
orCodeIgniter\Model
, respectively. This can be turned off by settingcodeigniter.checkArgumentTypeOfFactories: false
in yourphpstan.neon
. For fine-grained control, you can individually choose which factory function to disable usingcodeigniter.checkArgumentTypeOfConfig
andcodeigniter.checkArgumentTypeOfModel
. NOTE: Settingcodeigniter.checkArgumentTypeOfFactories: false
will 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: false
in yourphpstan.neon
. - Disallows instantiating cache handlers using
new
and suggests to use theCacheFactory
class instead. - Disallows instantiating
FrameworkException
classes usingnew
. - Disallows direct re-assignment or access of
$_SERVER
and$_GET
and suggests to use theSuperglobals
class instead. - Disallows use of
::class
fetch 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.neon
Any 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.