This project contains several extensions (stubs/plugins) to be used with Phan for static PHP analysis.
We currently have the following plugins available:
Parses all annotation that start with an uppercase letter, in order to check whether they have been imported into the file, and to remove unused warnings from vanilla Phan if they are used correctly.
The Symfony version of this plugin (currently the only one) ignores the Annotation
and Target
annotation which
are used in validator definitions.
Scans each file in the /src
directory which contains a class (if a file contains multiple classes, it will also be
scanned for every time a class is defined in it). This plugin is a workaround for a limitation in php-ast, which does
not expose inline comments.
Scans each method docblock for the use of the @method
, in order to set the annotated class as used.
Scans each method docblock for the use of the @throws
, in order to set the annotated class as used.
Note: This plugin is obsolete since Phan 0.12.3, due to this issue being closed.
You can enable a plugins by adding it to your Phan configuration:
return [
'plugins' => [
'vendor/drenso/phan-extensions/Plugin/Annotation/SymfonyAnnotationPlugin.php'
],
];
We currently have stubs for the following packages:
- curl
- intl
- ldap
- pdo
- radius
- sockets
You can enable a stub by adding it to your Phan configuration. Note that you also want to disable analysis on the specific folder. You probably already added the vendor directory to your configuration (in both lists), in which case you can skip this setup.
return [
'directory_list' => [
'vendor/drenso/phan-extensions/Stubs'
],
"exclude_analysis_directory_list" => [
'vendor/drenso/phan-extensions/Stubs'
],
];