Voici trois outils utiles pour auditer du code PHP de manière statique :
PHPStan
Installation
cd my_project
wget https://github.com/phpstan/phpstan-shim/raw/master/phpstan.phar
Utilisation
php phpstan analyse src -l 0
Explications :
srcest le répertoire à analyser. Plusieurs peuvent être passés, séparés par des espaces.- L'option
-lpermet de choisir le niveau d'acceptation des erreurs, avec0le moins strict possible, et7pour le plus strict.
SonarQube
Installation
Créez un fichier sonar-project.properties à la racine de votre projet, contenant les lignes suivantes :
sonar.projectKey=my:project
sonar.projectName=My project
sonar.projectVersion=1.0
sonar.sources=src
sonar.sourceEncoding=UTF-8
Explication : src est le répertoire à analyser
Remarques :
- Pour retirer certains fichiers/répertoires de l'anlayse, utilisez l'option
sonar.exclusions - Les autres options sont listées dans la documentation officielle
Lancez SonarQube via Docker :
docker pull sonarqube
docker run -d --name sonarqubedocker_sonarqube_1 -p 9000:9000 sonarqube
- Accédez à SonarQube avec votre navigateur via cette adresse : http://localhost:9000.
- L'interface indique que le site est en cours de maintenance. Attendez qu’il soit opérationnel.
- Connectez-vous en tant qu'administrateur (
admin/admin).
Lancez Sonar runner avec Docker, pour exécuter l'analyse :
docker run --link sonarqubedocker_sonarqube_1:sonarqube \
--entrypoint /opt/sonar-runner-2.4/bin/sonar-runner \
-e SONAR_USER_HOME=/data/.sonar-cache \
-v $(pwd):/data -u $(id -u) sebp/sonar-runner \
-Dsonar.host.url=http://sonarqube:9000 \
-Dsonar.jdbc.url=jdbc:h2:tcp://sonarqube/sonar \
-Dsonar.jdbc.username=sonar \
-Dsonar.jdbc.password=sonar \
-Dsonar.jdbc.driverClassName=org.h2.Driver \
-Dsonar.embeddedDatabase.port=9092
Utilisation
L'application SonarQube affiche maintenant le rapport d'analyse de votre pojet.
Voici la page d'accueil du rapport, à partir de laquelle on accède aux alertes remontées et au code associé.

PHPStorm
PHPStorm affiche des alertes directement dans le code, en fonction des réglages utilisés. Ceux-ci peuvent être personnalisés par projet ou au niveau global, via Settings > Editor > Inspections.
L'IDE propose aussi une vue d'ensemble de tout le projet.
Pour l'utiliser, faites un clic-droit sur le répertoire à scanner (ex src), puis cliquez sur Inspect code...

Le rapport peut ensuite être exporté au format HTML ou XML.