Changes

Jump to navigation Jump to search
Created page with "https://phpstan.org/ PHPStan seems more polished (perhaps because it's commercial and has a 'pro' version that adds a GUI) whereas phan is the original PHP static analysis to..."
https://phpstan.org/

PHPStan seems more polished (perhaps because it's commercial and has a 'pro' version that adds a GUI) whereas phan is the original PHP static analysis tool Rasmus Ledorf uses.

PHPStan has some very notable projects that integrate it: Symphony, Doctrine, Monolog, and many more. Once again, there are PHPStan integrations for Drupal and Wordpress, but not MediaWiki.

Adding a configuration file for your MediaWiki extension is straightforward and would look like this:<syntaxhighlight lang="yaml">
parameters:
level: 1
paths:
- src
- tests
scanDirectories:
- ../../includes
- ../../tests/phpunit
- ../../vendor
</syntaxhighlight>


The [https://phpstan.org/user-guide/rule-levels '''level''' can be 0 - 9] and are "intuitive" with zero being the lowest "lax" level, and 9 being the highest level of strictness. This is the opposite of Phan levels where zero is the highest level of strictness.

The '''paths''' are the directories of '''your code.'''

The '''scanDirectories''' are additional paths used to discover symbols, but not analyze for errors.

== Analyzing a forest ==
See [[PHPStan/configuration]] for a sample configuration file used for auditing a large installed base of MediaWiki extensions.

== Analyzing in depth ==
For an example of best-practices, single extension usage, see [https://github.com/ProfessionalWiki/Maps/blob/ee88211fadb3573b646cce005383450e96c3054e/phpstan.neon the example of Professional Wiki's Maps extension] which illustrates configuration file includes of a 'baseline'; error message suppression; and directory exclusions of problem code.

[[Category:Wiki]]
[[Category:MediaWiki]]
[[Category:Development]]
[[Category:QA]]
[[Category:Testing]]
[[Category:Analysis]]
[[Category:Tools]]
[[Category:Continuous Integration]]

Navigation menu