drenso / phan-extensions
This project contains several extensions (stubs/plugins) to be used with Phan for static PHP analysis
Installs: 1 499 938
Dependents: 15
Suggesters: 0
Security: 0
Stars: 18
Watchers: 3
Forks: 4
Open Issues: 0
Type:project
Requires (Dev)
- phan/phan: ~2|~3
README
This project contains several extensions (stubs/plugins) to be used with Phan for static PHP analysis.
Note: This project is no longer actively maintained!
Plugins
We currently have the following plugins available:
Annotation\SymfonyAnnotationPlugin
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
, Target
, Required
and SuppressWarnings
annotations by default.
DocComment\InlineVarPlugin
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.
DocComment\MethodPlugin
Scans each method docblock for the use of the @method
, in order to set the annotated class as used.
DocComment\ThrowsPlugin
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.
Usage
You can enable a plugins by adding it to your Phan configuration:
return [ 'plugins' => [ 'vendor/drenso/phan-extensions/Plugin/Annotation/SymfonyAnnotationPlugin.php' ], ];
Stubs
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' ], ];