From 00feac8671b9d415bb97c7935038b3a641f02822 Mon Sep 17 00:00:00 2001 From: JamesRezo <james@rezo.net> Date: Sat, 28 Aug 2021 15:42:49 +0200 Subject: [PATCH] feat(phpstan) : Mise en place de l'outil --- .gitignore | 1 + composer.json | 5 +- phpstan-baseline.neon | 417 ++++++++++++++++++++++++++++++++++++++++++ phpstan.neon.dist | 13 ++ 4 files changed, 435 insertions(+), 1 deletion(-) create mode 100644 phpstan-baseline.neon create mode 100644 phpstan.neon.dist diff --git a/.gitignore b/.gitignore index 654c0790e2..efe06efc73 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /composer.phar /composer.lock /phpcs.xml +/phpstan.neon **/.DS_Store **/.htaccess diff --git a/composer.json b/composer.json index 5f5e53d22a..f033900e2d 100644 --- a/composer.json +++ b/composer.json @@ -1,12 +1,15 @@ { "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", - "spip/coding-standards": "^1.2" + "spip/coding-standards": "^1.2", + "phpstan/phpstan": "^0.12.96" }, "archive": { "exclude": [ "composer.json", "phpcs.xml.dist", + "phpstan.neon.dist", + "phpstan-baseline.neon", "!plugins-dist", "!squelettes-dist", "!config/ecran_securite.php", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000000..cc7d874604 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,417 @@ +parameters: + ignoreErrors: + - + message: "#^Function cache_get not found\\.$#" + count: 1 + path: ecrire/action/redirect.php + + - + message: "#^Function cache_set not found\\.$#" + count: 1 + path: ecrire/action/redirect.php + + - + message: "#^Function spip_connect_db\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: ecrire/base/connect_sql.php + + - + message: "#^Array has 2 duplicate keys with value 350 \\(350, 350\\)\\.$#" + count: 1 + path: ecrire/charsets/translit.php + + - + message: "#^Array has 2 duplicate keys with value 351 \\(351, 351\\)\\.$#" + count: 1 + path: ecrire/charsets/translit.php + + - + message: "#^Array has 2 duplicate keys with value 8212 \\(8212, 8212\\)\\.$#" + count: 1 + path: ecrire/charsets/translit.php + + - + message: "#^Function exec_puce_statut_args\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/exec/puce_statut.php + + - + message: "#^Function exec_puce_statut_dist\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/exec/puce_statut.php + + - + message: "#^Function message_crash_tables\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/genie/maintenance.php + + - + message: "#^Function boutons_plugins not found\\.$#" + count: 1 + path: ecrire/inc/bandeau.php + + - + message: "#^Function onglets_plugins not found\\.$#" + count: 1 + path: ecrire/inc/boutons.php + + - + message: "#^Function fichier_copie_locale\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/distant.php + + - + message: "#^Function mention_qui_edite\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/drapeau_edition.php + + - + message: "#^Function afficher_diff not found\\.$#" + count: 1 + path: ecrire/inc/editer.php + + - + message: "#^Function afficher_para_modifies not found\\.$#" + count: 1 + path: ecrire/inc/editer.php + + - + message: "#^Function preparer_diff not found\\.$#" + count: 2 + path: ecrire/inc/editer.php + + - + message: "#^Function propre_diff not found\\.$#" + count: 1 + path: ecrire/inc/editer.php + + - + message: "#^Function signaler_conflits_edition\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/editer.php + + - + message: "#^Instantiated class Diff not found\\.$#" + count: 1 + path: ecrire/inc/editer.php + + - + message: "#^Instantiated class DiffTexte not found\\.$#" + count: 1 + path: ecrire/inc/editer.php + + - + message: "#^Function mail_embarquer_pieces_jointes not found\\.$#" + count: 1 + path: ecrire/inc/envoyer_mail.php + + - + message: "#^Function compacte not found\\.$#" + count: 1 + path: ecrire/inc/filtres.php + + - + message: "#^Instantiated class csstidy not found\\.$#" + count: 1 + path: ecrire/inc/filtres.php + + - + message: "#^Function extraire_date\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/filtres_dates.php + + - + message: "#^Function recup_date\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/filtres_dates.php + + - + message: "#^Function alertes_auteur\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/filtres_ecrire.php + + - + message: "#^Function md5_boutons_plugins not found\\.$#" + count: 1 + path: ecrire/inc/filtres_ecrire.php + + - + message: "#^Class GdImage not found\\.$#" + count: 1 + path: ecrire/inc/filtres_images_lib_mini.php + + - + message: "#^Function statut_effacer_images_temporaires\\(\\) should return bool but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/filtres_images_lib_mini.php + + - + message: "#^Function couleur_luminance not found\\.$#" + count: 1 + path: ecrire/inc/filtres_images_mini.php + + - + message: "#^Function couleur_saturation not found\\.$#" + count: 1 + path: ecrire/inc/filtres_images_mini.php + + - + message: "#^Function image_recadre not found\\.$#" + count: 1 + path: ecrire/inc/filtres_images_mini.php + + - + message: "#^Function sous_repertoire\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/flock.php + + - + message: "#^Function compacte not found\\.$#" + count: 1 + path: ecrire/inc/minipres.php + + - + message: "#^Function minipres\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/minipres.php + + - + message: "#^Function random not found\\.$#" + count: 1 + path: ecrire/inc/nfslock.php + + - + message: "#^Function cache_set not found\\.$#" + count: 1 + path: ecrire/inc/queue.php + + - + message: "#^Function cache_lock not found\\.$#" + count: 1 + path: ecrire/inc/rechercher.php + + - + message: "#^Function cache_unlock not found\\.$#" + count: 1 + path: ecrire/inc/rechercher.php + + - + message: "#^Function calculer_rubriques_if\\(\\) should return bool but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/rubriques.php + + - + message: "#^Function charger_langue\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/inc/traduire.php + + - + message: "#^Function recuperer_parametres_url not found\\.$#" + count: 1 + path: ecrire/inc/urls.php + + - + message: "#^Function cache_get not found\\.$#" + count: 1 + path: ecrire/inc/utils.php + + - + message: "#^Result of function debug_print_backtrace \\(void\\) is used\\.$#" + count: 1 + path: ecrire/inc/utils.php + + - + message: "#^Undefined variable\\: \\$auth_spip$#" + count: 1 + path: ecrire/install/etape_3b.php + + - + message: "#^Undefined variable\\: \\$row$#" + count: 1 + path: ecrire/install/etape_3b.php + + - + message: "#^Undefined variable\\: \\$session$#" + count: 1 + path: ecrire/install/etape_3b.php + + - + message: "#^Class IterateurDATA referenced with incorrect case\\: IterateurData\\.$#" + count: 1 + path: ecrire/iterateur/condition.php + + - + message: "#^Access to an undefined property IterateurDATA\\:\\:\\$command\\.$#" + count: 32 + path: ecrire/iterateur/data.php + + - + message: "#^Access to an undefined property IterateurDATA\\:\\:\\$info\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Access to an undefined property IterateurDATA\\:\\:\\$type\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Function analyser_backend not found\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Function cache_get not found\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Function cache_set not found\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Function inc_json_to_array_dist\\(\\) should return array\\|bool but return statement is missing\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Function yaml_decode not found\\.$#" + count: 1 + path: ecrire/iterateur/data.php + + - + message: "#^Access to an undefined property IterateurSQL\\:\\:\\$command\\.$#" + count: 7 + path: ecrire/iterateur/sql.php + + - + message: "#^Access to an undefined property IterateurSQL\\:\\:\\$info\\.$#" + count: 2 + path: ecrire/iterateur/sql.php + + - + message: "#^Access to an undefined property IterateurSQL\\:\\:\\$pos\\.$#" + count: 6 + path: ecrire/iterateur/sql.php + + - + message: "#^Access to an undefined property IterateurSQL\\:\\:\\$type\\.$#" + count: 1 + path: ecrire/iterateur/sql.php + + - + message: "#^Function icone_lien_cfg not found\\.$#" + count: 1 + path: ecrire/plugins/afficher_plugin.php + + - + message: "#^Function inclure_balise_dynamique\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: ecrire/public/assembler.php + + - + message: "#^Undefined variable\\: \\$chemin_cache$#" + count: 4 + path: ecrire/public/assembler.php + + - + message: "#^Undefined variable\\: \\$lastinclude$#" + count: 3 + path: ecrire/public/assembler.php + + - + message: "#^Undefined variable\\: \\$lastmodified$#" + count: 2 + path: ecrire/public/assembler.php + + - + message: "#^Undefined variable\\: \\$use_cache$#" + count: 1 + path: ecrire/public/assembler.php + + - + message: "#^Function balise_COMPTEUR_BOUCLE_dist\\(\\) should return Champ but return statement is missing\\.$#" + count: 1 + path: ecrire/public/balises.php + + - + message: "#^Function balise_ENV not found\\.$#" + count: 1 + path: ecrire/public/balises.php + + - + message: "#^Function balise_FILTRE_dist\\(\\) should return Champ but return statement is missing\\.$#" + count: 1 + path: ecrire/public/balises.php + + - + message: "#^Function balise_INCLURE not found\\.$#" + count: 1 + path: ecrire/public/balises.php + + - + message: "#^Result of function creer_cache \\(void\\) is used\\.$#" + count: 1 + path: ecrire/public/cacher.php + + - + message: "#^Function critere_par_ordre_liste_dist\\(\\) should return array\\|string but return statement is missing\\.$#" + count: 1 + path: ecrire/public/criteres.php + + - + message: "#^Result of function calculer_critere_parties \\(void\\) is used\\.$#" + count: 1 + path: ecrire/public/criteres.php + + - + message: "#^Function image_du_document not found\\.$#" + count: 1 + path: ecrire/public/quete.php + + - + message: "#^Function vignette_automatique not found\\.$#" + count: 1 + path: ecrire/public/quete.php + + - + message: "#^Function spip_mysql_seek\\(\\) should return bool but return statement is missing\\.$#" + count: 1 + path: ecrire/req/mysql.php + + - + message: "#^Function spip_mysql_update\\(\\) should return array\\|bool\\|string but return statement is missing\\.$#" + count: 1 + path: ecrire/req/mysql.php + + - + message: "#^Result of function mysqli_free_result \\(void\\) is used\\.$#" + count: 1 + path: ecrire/req/mysql.php + + - + message: "#^Function spip_pg_selectdb\\(\\) should return bool\\|string but return statement is missing\\.$#" + count: 1 + path: ecrire/req/pg.exp.php + + - + message: "#^Function spip_sqlite_selectdb\\(\\) should return bool\\|string but return statement is missing\\.$#" + count: 1 + path: ecrire/req/sqlite_generique.php + + - + message: "#^Function spip_sqlite_update\\(\\) should return array\\|bool\\|string but return statement is missing\\.$#" + count: 1 + path: ecrire/req/sqlite_generique.php + + - + message: "#^Function corriger_extension not found\\.$#" + count: 1 + path: prive/formulaires/configurer_ecran_connexion.php + + - + message: "#^Function serialise not found\\.$#" + count: 1 + path: prive/formulaires/configurer_metas.php + diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000000..f99c343c6a --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,13 @@ +includes: + - phpstan-baseline.neon + +parameters: + paths: + - ecrire + - prive + excludePaths: + analyseAndScan: + - ecrire/lang + analyse: + - ecrire/inc/idna_convert.class.php + level: 0 -- GitLab