ekino / phpstan-banned-code
Detected banned code using PHPStan
Installs: 3 499 794
Dependents: 90
Suggesters: 0
Security: 0
Stars: 224
Watchers: 17
Forks: 21
Open Issues: 8
Type:phpstan-extension
Requires
- php: ^8.1
- phpstan/phpstan: ^2.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.6
- friendsofphp/php-cs-fixer: ^3.0
- nikic/php-parser: ^4.3
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.0
- v3.0.0
- v2.1.0
- v2.0.0
- dev-master / 1.0.x-dev
- v1.0.0
- v0.5.0
- v0.4.0
- v0.3.1
- v0.3.0
- v0.2.0
- v0.1.1
- v0.1.0
- v0.0.2
- v0.0.1
- dev-dependabot/composer/nikic/php-parser-tw-5.3
- dev-dependabot/composer/phpunit/phpunit-tw-11.2
- dev-dependabot/composer/symfony/var-dumper-tw-7.1
- dev-dependabot/composer/phpunit/phpunit-tw-9.5
This package is auto-updated.
Last update: 2024-11-13 09:58:30 UTC
README
This library is based on PHPStan to detect calls to specific functions you don't want in your project. For instance, you can add it in your CI process to make sure there is no debug/non standard code (like var_dump, exit, ...).
Basic usage
To use this extension, require it using Composer:
composer require --dev ekino/phpstan-banned-code
When you use https://github.com/phpstan/extension-installer you are done.
If not, include extension.neon
in your project's PHPStan config:
includes:
- vendor/ekino/phpstan-banned-code/extension.neon
Advanced usage
You can configure this library with parameters:
parameters:
banned_code:
nodes:
# enable detection of echo
-
type: Stmt_Echo
functions: null
# enable detection of eval
-
type: Expr_Eval
functions: null
# enable detection of die/exit
-
type: Expr_Exit
functions: null
# enable detection of a set of functions
-
type: Expr_FuncCall
functions:
- dd
- debug_backtrace
- dump
- exec
- passthru
- phpinfo
- print_r
- proc_open
- shell_exec
- system
- var_dump
# enable detection of print statements
-
type: Expr_Print
functions: null
# enable detection of shell execution by backticks
-
type: Expr_ShellExec
functions: null
# enable detection of `use Tests\Foo\Bar` in a non-test file
use_from_tests: true
# errors emitted by the extension are non-ignorable by default, so they cannot accidentally be put into the baseline.
non_ignorable: false # default is true
type
is the returned value of a node, see the method getType()
.