Php Inspections (EA Extended)

Compatible with: IntelliJ IDEA PhpStorm
Nov 30, 2017
264 027
For support and donations please visit Github | Issues | PayPal | Patreon.

Please follow me at twitter for status updates.

This plugin is a Static Code Analysis tool for PHP (aka inspections in JetBrains products).

It covers:
- architecture related issues
- weak types control and possible code construct simplifications
- performance issues
- non-optimal, duplicate and suspicious "if" conditions
- validation of magic methods usage
- regular expressions
- validation of exception handling workflow
- compatibility issues
- variety of time-consuming bugs
- PhpUnit API usage
- security issues

Some of inspections are expecting conditional statements (e.g. "if") to use group statement for wrapping body expressions. If this requirement is met then additional inspections are applied to the source code.

For Mac shortcuts, see this reference card. Windows/Linux ones are:
Alt + Shift + I to inspect current file with current profile
Ctrl + Alt + Shift + I to run inspection by name
Ctrl + Shift + F4 to close results of inspection.

On some projects CPU and therefore battery usage could be intensive, so it should be taken into account when traveling with a laptop.

Note: we are sending anonymous crash-reports and installation statistics to Google Analytics. You are welcome to review the implementation.

Download plugin

Recent change notes

Bug-fixes and enhancements:

- Multiple PhpStrom 2017.3 compatibility fixes

- A constant can be used: resolved false-positives (use-statements)
- Array and string offset validity: resolved false-positives (switch to JB types resolver)
- Foreach source to iterate over: resolved a false-positive (multiple cases)
- Forgotten debug statements: resolved false-positives (debug calls inside debug-wrappers)
- Magic methods validity: new patterns (thank you @zf2timo)
- Security advisories for Composer packages: new dev-packages, new settings
- Self class referencing: resolved false-positives (extends list)
- Senseless proxy function: resolved false-positives (magic constants as parameters defaults)
- Suspicious loop: resolved false-positives (complimentary operations with joda conditions)
- Unnecessary parentheses: resolved a false-positive, new patterns
- 'empty(...)' usage: QF settings
- 'isset(...)' usage: new settings (report index concatenation)
- 'substr(...)' short-hand usage: bug-fix incorrect index calculation