dolibarr/dev/tools/phan
MDW 1c3a035ae5
Qual: New Phan plugin for testing that argument matches regex (#28424)
* Qual: New Phan plugin for testing that argument matches regex

# Qual: New Phan plugin for testing that argument matches regex

This Plugin - currently applied to GETPOST - allows verifying that a selected
argument of a function matches a regular expression.

* Qual: Add isModEnabled verification to phan

# Qual: Add isModEnabled verification in phan

Using ParamMatchRegexPlugin, add isModEnabled parameter verification.

* Qual: Verify sanitizeVal check value

# Qual: Verify sanitizeVal check value

Use ParamMatchPlugin to check sanitizeVal check value

* Qual: Extend ParamMatchRegexPlugin with class_method

# Qual: Extend ParamMatchRegexPlugin with class_method

Allow matching class methods for argument verification.

* Update config.php

* Qual: New Phan plugin for testing that argument matches regex

# Qual: New Phan plugin for testing that argument matches regex

This Plugin - currently applied to GETPOST - allows verifying that a selected
argument of a function matches a regular expression.

* Qual: Add isModEnabled verification to phan

# Qual: Add isModEnabled verification in phan

Using ParamMatchRegexPlugin, add isModEnabled parameter verification.

* Qual: Verify sanitizeVal check value

# Qual: Verify sanitizeVal check value

Use ParamMatchPlugin to check sanitizeVal check value

* Qual: Extend ParamMatchRegexPlugin with class_method

# Qual: Extend ParamMatchRegexPlugin with class_method

Allow matching class methods for argument verification.

* Report scalar values (see null, etc)

* Qual: Ignore false Phan Notification

* Qual: Ignore false Phan Notification

* Qual: Fix Phan needs specific message keys for coloring.

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-02-26 23:10:16 +01:00
..
plugins Qual: New Phan plugin for testing that argument matches regex (#28424) 2024-02-26 23:10:16 +01:00
stubs QUAL Use phan to help detect new issues (#27706) 2024-02-21 18:14:29 +01:00
.gitignore QUAL Use phan to help detect new issues (#27706) 2024-02-21 18:14:29 +01:00
baseline.txt QUAL Use phan to help detect new issues (#27706) 2024-02-21 18:14:29 +01:00
config_extended.php Qual: New Phan plugin for testing that argument matches regex (#28424) 2024-02-26 23:10:16 +01:00
config_fixer.php Qual: New Phan plugin for testing that argument matches regex (#28424) 2024-02-26 23:10:16 +01:00
config.php Qual: New Phan plugin for testing that argument matches regex (#28424) 2024-02-26 23:10:16 +01:00
README.md QUAL Use phan to help detect new issues (#27706) 2024-02-21 18:14:29 +01:00
run-phan.sh QUAL Use phan to help detect new issues (#27706) 2024-02-21 18:14:29 +01:00
runPhanDocker.sh QUAL Use phan to help detect new issues (#27706) 2024-02-21 18:14:29 +01:00

Static Code Checks using phan

Installation, running

run-phan.sh can install and run phan.

See instructions in run-phan.sh for installing (or just run it).

The configuration file in PROJECT_DIR/.phan/config.php also allows you to run phan independently from the script.

Run options:

No option : Runs the minimum checks

Option 'full' : Runs all an extensive set of checks

Option '1' : Writes the baseline

Examples:

  • run-phan.sh runs the default checks
  • run-phan.sh 1 updates the baseline for the default checks
  • run-phan.sh full runs the extended checks
  • run-phan.sh full 1 updates the baseline for the extended checks

Baseline

The baseline.txt file in this directory defines the issues that are currently excluded from the final report. In principle you should not add any more exceptions to that file, but rather fix the issues or add phan annotations that provide more information or to exclude specific cases.

Configuration

config.php : Default configuration file

config_extended.php : Configuration that enables more checks.

baseline.txt : Ignored issues (with config.php)

baseline_extended.txt : Ignored issues (with config_extended.php), not currently in git