codeigniter / phpstan-codeigniter
CodeIgniter extensions and rules for PHPStan
Installs: 260 537
Dependents: 20
Suggesters: 0
Security: 0
Stars: 17
Watchers: 7
Forks: 1
Open Issues: 5
Type:phpstan-extension
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-04-20 13:53:47 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\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.
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.