codeigniter / phpstan-codeigniter
CodeIgniter extensions and rules for PHPStan
Installs: 342 537
Dependents: 25
Suggesters: 0
Security: 0
Stars: 17
Watchers: 7
Forks: 2
Open Issues: 6
Type:phpstan-extension
pkg:composer/codeigniter/phpstan-codeigniter
Requires
- php: ^8.1
- phpstan/phpstan: ^2.0
Requires (Dev)
- codeigniter/coding-standard: ^1.7
- codeigniter4/framework: ^4.5
- codeigniter4/shield: ^1.0
- friendsofphp/php-cs-fixer: ^3.49
- nexusphp/cs-config: ^3.21
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^10.5 || ^11.4
Conflicts
This package is auto-updated.
Last update: 2025-10-13 18:21:36 UTC
README
This extension provides the following features:
Rules
- 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.
Installation
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
Contributing
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!
License
PHPStan CodeIgniter is an open source library licensed under MIT.