Browse Source

feat(dev-tools): Mise en place phpcs+phpstan (#4845)

Co-authored-by: JamesRezo <james@rezo.net>
Reviewed-on: #4845
Co-authored-by: JamesRezo <jamesrezo@noreply.git.spip.net>
Co-committed-by: JamesRezo <jamesrezo@noreply.git.spip.net>
pull/4848/head
JamesRezo 5 months ago
parent
commit
113383e421
  1. 7
      .gitignore
  2. 2
      action/bigup.php
  3. 11
      balise/saisie_fichier.php
  4. 8
      bigup_administrations.php
  5. 28
      bigup_fonctions.php
  6. 18
      bigup_pipelines.php
  7. 7
      composer.json
  8. 12
      formulaires/tester_bigup.php
  9. 12
      formulaires/tester_bigup_extended.php
  10. 4
      genie/bigup_nettoyer_repertoire_upload.php
  11. 6
      inc/Bigup.php
  12. 3
      inc/Bigup/Cache.php
  13. 19
      inc/Bigup/CacheFichiers.php
  14. 11
      inc/Bigup/CacheRepertoire.php
  15. 2
      inc/Bigup/Files.php
  16. 35
      inc/Bigup/Flow.php
  17. 4
      inc/Bigup/Formulaire.php
  18. 13
      inc/Bigup/GestionRepertoires.php
  19. 19
      inc/Bigup/Identifier.php
  20. 2
      inc/Bigup/LogTrait.php
  21. 13
      inc/Bigup/Repondre.php
  22. 15
      phpcs.xml.dist
  23. 407
      phpstan-baseline.neon
  24. 13
      phpstan.neon.dist

7
.gitignore

@ -0,0 +1,7 @@
/vendor/
/composer.phar
/composer.lock
/phpcs.xml
/phpstan.neon
/.php_cs.cache
/.php_cs.txt

2
action/bigup.php

@ -1,6 +1,5 @@
<?php
/**
* Assez tôt on vérifie si on demande à tester la présence d'un morceau de fichier uploadé
* ou si on demande à envoyer un morceau de fichier.
@ -13,5 +12,4 @@ function action_bigup_dist() {
$bigup = \Spip\Bigup\Repondre::depuisRequest();
$bigup->repondre();
exit;
}

11
balise/saisie_fichier.php

@ -10,7 +10,8 @@
* @package SPIP\Bigup\Fonctions
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
include_spip('balise/saisie');
@ -35,13 +36,13 @@ include_spip('balise/saisie');
function balise_SAISIE_FICHIER_dist($p) {
if (!class_exists('Pile')) {
$msg = array(
$msg = [
'bigup:zbug_necessite_plugin',
array(
[
'balise' => '#SAISIE_FICHIER',
'plugin' => 'saisies',
)
);
]
];
erreur_squelette($msg, $p);
return $p;
}

8
bigup_administrations.php

@ -1,4 +1,5 @@
<?php
/**
* Fichier gérant l'installation et désinstallation du plugin Big Upload
*
@ -9,12 +10,13 @@
* @package SPIP\Bigup\Installation
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Fonction d'installation et de mise à jour du plugin Big Upload.
*
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @param string $version_cible
@ -46,7 +48,7 @@ function bigup_upgrade($nom_meta_base_version, $version_cible) {
/**
* Fonction de désinstallation du plugin Big Upload.
*
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void

28
bigup_fonctions.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions utiles au plugin Big Upload
*
@ -9,7 +10,8 @@
* @package SPIP\Bigup\Fonctions
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Compile la balise `#BIGUP_TOKEN` qui calcule un token
@ -83,7 +85,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
* @return Champ
* Pile complétée par le code à générer
**/
function balise_BIGUP_TOKEN($p){
function balise_BIGUP_TOKEN($p) {
if (!$_champ = interprete_argument_balise(1, $p)) {
$_champ = "@\$Pile[0]['nom']";
}
@ -110,10 +112,10 @@ function balise_BIGUP_TOKEN($p){
* Calcule un token en fonction de l'utilisateur, du champ, du formulaire…
*
* Retourne un token de la forme `champ:time:clé`
*
*
* @uses calculer_action_auteur()
* @see \Spip\Bigup\Flow::verifier_token()
*
*
* @param string $champ
* Nom du champ input du formulaire
* @param string|bool $multiple
@ -128,8 +130,8 @@ function balise_BIGUP_TOKEN($p){
**/
function calculer_balise_BIGUP_TOKEN($champ, $multiple, $form, $form_args) {
if (!$champ OR !$form OR !$form_args) {
spip_log("Demande de token bigup, mais un argument est vide", _LOG_ERREUR);
if (!$champ or !$form or !$form_args) {
spip_log('Demande de token bigup, mais un argument est vide', _LOG_ERREUR);
return false;
}
$time = time();
@ -211,7 +213,7 @@ function bigup_nom2name($nom) {
* return string
**/
function bigup_nom2classe($nom) {
return str_replace(array('/', '[', ']', '&#91;', '&#93;'), array('_', '_', '', '_', ''), $nom);
return str_replace(['/', '[', ']', '&#91;', '&#93;'], ['_', '_', '', '_', ''], $nom);
}
@ -243,7 +245,7 @@ function bigup_name2nom($name) {
function bigup_get_accept_logos() {
$extensions = $GLOBALS['formats_logos'];
$mimes = array_map('bigup_get_mime_type_extension', $extensions);
return implode(",", $mimes);
return implode(',', $mimes);
}
/**
@ -257,17 +259,17 @@ function bigup_get_mime_type_extension($extension) {
// cas particuliers
switch ($extension) {
case 'bmp':
$mime = "image/x-ms-bmp";
$mime = 'image/x-ms-bmp';
break;
case 'jpg':
$mime = "image/jpeg";
$mime = 'image/jpeg';
break;
case 'svg':
$mime = "image/svg+xml";
$mime = 'image/svg+xml';
break;
case 'tif':
$mime = "image/tiff";
$mime = 'image/tiff';
break;
}
return $mime;
}
}

18
bigup_pipelines.php

@ -1,4 +1,5 @@
<?php
/**
* Utilisations de pipelines par Big Upload
*
@ -9,7 +10,8 @@
* @package SPIP\Bigup\Pipelines
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Charger des scripts jquery
@ -174,7 +176,7 @@ function bigup_formulaire_receptionner($flux) {
/**
* Branchement sur verifier
*
*
* - Si on a demandé la suppression d'un fichier, le faire
* - Nettoyer les fichiers injectés effacés de $_FILES.
*
@ -238,11 +240,11 @@ function bigup_formulaire_traiter($flux) {
function bigup_medias_formulaires_traitements_automatiques() {
return [
'configurer_ecran_connexion',
'editer_logo',
'editer_document',
'illustrer_document',
'editer_logo',
'editer_document',
'illustrer_document',
'formidable',
'joindre_document',
'joindre_document',
];
}
@ -276,12 +278,12 @@ function bigup_medias_formulaire_charger($flux) {
**/
function bigup_medias_formulaire_fond($flux) {
include_spip('inc/config');
if (
(test_espace_prive() or lire_config('bigup/charger_public'))
and !empty($flux['args']['contexte']['_bigup_rechercher_fichiers'])
and $form = $flux['args']['form']
and $bigup_medias_formulaire = charger_fonction('bigup_medias_formulaire_'.$form, 'inc', true)
and $bigup_medias_formulaire = charger_fonction('bigup_medias_formulaire_' . $form, 'inc', true)
) {
$bigup = bigup_get_bigup(['args' => $flux['args']['contexte']]);
$formulaire = $bigup->formulaire($flux['data'], $flux['args']['contexte']);

7
composer.json

@ -0,0 +1,7 @@
{
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"spip/coding-standards": "^1.2",
"phpstan/phpstan": "^0.12.98"
}
}

12
formulaires/tester_bigup.php

@ -5,7 +5,7 @@
* de l'envoi de fichier, même des gros.
*
* Il y a beaucoup de contraintes à gérer :
*
*
* - la gestion d'un ou plusieurs champs de type fichier
* - la gestion de gros fichiers (envois par morceaux (chunk))
* - la gestion d'une zone de glisser déposer
@ -14,7 +14,7 @@
* - la sécurité : ne pas pouvoir exécuter/télécharger les fichiers envoyés directement
* - la gestion de plusieurs formulaires sur la même page (avec des appels différents) :
* ils ne doivent pas se mélanger les pinceaux.
*
*
* @package SPIP\Bigup\Formulaires
**/
@ -28,7 +28,7 @@ function formulaires_tester_bigup_charger_dist($id = 0) {
// demander la gestion de fichiers d'upload
$valeurs['_bigup_rechercher_fichiers'] = true;
spip_log("> charger tester_bigup", "bigup");
spip_log('> charger tester_bigup', 'bigup');
return $valeurs;
}
@ -38,7 +38,7 @@ function formulaires_tester_bigup_charger_dist($id = 0) {
function formulaires_tester_bigup_verifier_dist($id = 0) {
$erreurs = [];
spip_log('> verifier tester_bigup', "bigup");
spip_log('> verifier tester_bigup', 'bigup');
// ceux là sont obligatoires
foreach (['titre'] as $obli) {
@ -53,10 +53,10 @@ function formulaires_tester_bigup_verifier_dist($id = 0) {
function formulaires_tester_bigup_traiter_dist($id = 0) {
spip_log('> traiter tester_bigup', "bigup");
spip_log('> traiter tester_bigup', 'bigup');
$retours = [
'message_ok' => "Formulaire pris en compte",
'message_ok' => 'Formulaire pris en compte',
'editable' => true,
];

12
formulaires/tester_bigup_extended.php

@ -3,7 +3,7 @@
/**
* L'objectif de ce formulaire de test est de vérifier
* le fonctionnement de la drop-zone-extended de bgup
*
*
* @package SPIP\Bigup\Formulaires
**/
@ -17,7 +17,7 @@ function formulaires_tester_bigup_extended_charger_dist($id = 0, $target = '', $
'drop_zone_extended' => '',
];
if ($target === 'form') {
$valeurs['drop_zone_extended'] = "#" . $valeurs['_id'];
$valeurs['drop_zone_extended'] = '#' . $valeurs['_id'];
} elseif ($target === 'bloc') {
$valeurs['drop_zone_extended'] = $bloc;
}
@ -25,7 +25,7 @@ function formulaires_tester_bigup_extended_charger_dist($id = 0, $target = '', $
// demander la gestion de fichiers d'upload
$valeurs['_bigup_rechercher_fichiers'] = true;
spip_log("> charger tester_bigup_extended", "bigup");
spip_log('> charger tester_bigup_extended', 'bigup');
return $valeurs;
}
@ -35,7 +35,7 @@ function formulaires_tester_bigup_extended_charger_dist($id = 0, $target = '', $
function formulaires_tester_bigup_extended_verifier_dist($id = 0, $target = '', $bloc = '') {
$erreurs = [];
spip_log('> verifier tester_bigup_extended', "bigup");
spip_log('> verifier tester_bigup_extended', 'bigup');
// ceux là sont obligatoires
foreach (['titre'] as $obli) {
@ -50,10 +50,10 @@ function formulaires_tester_bigup_extended_verifier_dist($id = 0, $target = '',
function formulaires_tester_bigup_extended_traiter_dist($id = 0, $target = '', $bloc = '') {
spip_log('> traiter tester_bigup_extended', "bigup");
spip_log('> traiter tester_bigup_extended', 'bigup');
$retours = [
'message_ok' => "Formulaire pris en compte",
'message_ok' => 'Formulaire pris en compte',
'editable' => true,
];

4
genie/bigup_nettoyer_repertoire_upload.php

@ -1,4 +1,5 @@
<?php
/**
* Tache de nettoyages de fichiers du plugin Big Upload
*
@ -9,7 +10,8 @@
* @package SPIP\Bigup\Genie
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Enlève les fichiers du répertoire de travail de bigup qui sont trop vieux

6
inc/Bigup.php

@ -12,7 +12,8 @@ namespace Spip\Bigup;
* @package SPIP\Bigup\Fonctions
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
include_spip('inc/config');
include_spip('inc/Bigup/LogTrait');
@ -30,7 +31,6 @@ include_spip('inc/Bigup/Repondre');
* Gère la validité des requêtes et appelle Flow
**/
class Bigup {
use LogTrait;
/**
@ -165,7 +165,7 @@ class Bigup {
*/
public function supprimer_fichiers($identifiants = []) {
if (!$identifiants) {
$this->debug("Suppression des fichiers");
$this->debug('Suppression des fichiers');
$this->cache->supprimer_repertoires();
} else {
$this->cache->final->supprimer_fichiers($identifiants);

3
inc/Bigup/Cache.php

@ -17,7 +17,6 @@ namespace Spip\Bigup;
* Gère le cache des fichiers dans tmp/bigupload
**/
class Cache {
use LogTrait;
/**
@ -99,4 +98,4 @@ class Cache {
$this->parts->supprimer_fichier($identifiant);
return true;
}
}
}

19
inc/Bigup/CacheFichiers.php

@ -18,7 +18,6 @@ namespace Spip\Bigup;
*
**/
class CacheFichiers {
use LogTrait;
/**
@ -147,9 +146,9 @@ class CacheFichiers {
public static function obtenir_description_fichier($chemin) {
$description = self::lire_description_fichier($chemin);
if ($description) {
self::debug("* Description de : " . $description['name'] . ' (' . $chemin . ')');
self::debug('* Description de : ' . $description['name'] . ' (' . $chemin . ')');
} else {
self::debug("* Description introuvable pour : " . $chemin);
self::debug('* Description introuvable pour : ' . $chemin);
}
return $description;
}
@ -169,16 +168,16 @@ class CacheFichiers {
**/
public function decrire_fichier($identifiant, $infos) {
if (!is_array($infos)) {
self::error("Infos non transmises pour décrire le fichier : " . $identifiant);
self::error('Infos non transmises pour décrire le fichier : ' . $identifiant);
return false;
}
if (empty($infos['tmp_name'])) {
self::error("Chemin du fichier absent pour décrire le fichier : " . $identifiant);
self::error('Chemin du fichier absent pour décrire le fichier : ' . $identifiant);
return false;
}
$chemin = $infos['tmp_name'];
if (empty($infos['name'])) {
self::error("Nom original du fichier absent pour décrire le fichier : " . $chemin);
self::error('Nom original du fichier absent pour décrire le fichier : ' . $chemin);
return false;
}
if (empty($this->champ)) {
@ -186,7 +185,7 @@ class CacheFichiers {
return false;
}
if (empty($this->identifier->formulaire_identifiant)) {
self::error("Identifiant de formulaire absent pour décrire le fichier : " . $chemin);
self::error('Identifiant de formulaire absent pour décrire le fichier : ' . $chemin);
return false;
}
@ -221,7 +220,7 @@ class CacheFichiers {
}
$chemin = $infos['tmp_name'];
if (!file_exists($chemin)) {
self::error("Fichier introuvable pour description : " . $chemin);
self::error('Fichier introuvable pour description : ' . $chemin);
return false;
}
@ -234,7 +233,7 @@ class CacheFichiers {
];
if ($diff = array_diff_key(array_flip($obligatoires), $bigup)) {
self::error("Description manquante dans (" . implode(',', $diff) . ") : " . $chemin);
self::error('Description manquante dans (' . implode(',', $diff) . ') : ' . $chemin);
return false;
}
@ -380,4 +379,4 @@ class CacheFichiers {
return false;
}
}
}

11
inc/Bigup/CacheRepertoire.php

@ -17,7 +17,6 @@ namespace Spip\Bigup;
* Gère le cache des fichiers dans tmp/bigupload
**/
class CacheRepertoire {
use LogTrait;
/**
@ -162,8 +161,7 @@ class CacheRepertoire {
* Identifiant du fichier, tel que créé avec CacheFichiers::hash_identifiant()
* Ou identifiant avant création du hash
**/
public function supprimer_fichier($identifiant)
{
public function supprimer_fichier($identifiant) {
if ($identifiant) {
$this->supprimer_fichiers([$identifiant]);
}
@ -187,7 +185,7 @@ class CacheRepertoire {
$identifiants = array_map('Spip\\Bigup\\CacheFichiers::hash_identifiant', $identifiants); // PHP 5.4
#$identifiants = array_map(CacheFichiers::class . '::hash_identifiant', $identifiants); // PHP >= 5.5
$this->debug("Demande de suppression de fichiers : " . implode(', ', $identifiants));
$this->debug('Demande de suppression de fichiers : ' . implode(', ', $identifiants));
foreach ($liste as $champ => $fichiers) {
foreach ($fichiers as $description) {
if (in_array($description['bigup']['identifiant'], $identifiants)) {
@ -210,7 +208,4 @@ class CacheRepertoire {
GestionRepertoires::supprimer_repertoire($this->dir);
return true;
}
}
}

2
inc/Bigup/Files.php

@ -17,7 +17,6 @@ namespace Spip\Bigup;
* Gestion des relations avec `$_FILES`
**/
class Files {
use LogTrait;
/**
@ -217,7 +216,6 @@ class Files {
$liste[$complet][] = $description;
}
}
}
return $liste;
}

35
inc/Bigup/Flow.php

@ -18,7 +18,7 @@ namespace Spip\Bigup;
* @licence GNU/GPL
* @package SPIP\Bigup\Fonctions
*/
include_spip('inc/Bigup/LogTrait');
/**
@ -38,7 +38,6 @@ class FlowResponse {
* Réceptionne des morceaux de fichiers envoyés par flow.js
**/
class Flow {
use LogTrait;
/**
@ -77,7 +76,7 @@ class Flow {
* Trouve le prefixe utilisé pour envoyer les données
*
* La présence d'une des variables signale un envoi effectué par une des librairies js utilisée.
*
*
* - 'flow' si flow.js
* - 'resumable' si resumable.js
*
@ -101,14 +100,14 @@ class Flow {
* Tester l'arrivée du javascript et agir en conséquence
*
* 2 possibilités :
*
*
* - Le JS demande si un morceau de fichier est déjà présent (par la méthode GET)
* - Le JS poste une partie d'un fichier (par la méthode POST)
*
* Le script retourne
* - le chemin du fichier complet si c’est le dernier morceau envoyé,
* - sinon un [code http, data] à envoyer
*
*
* @return FlowResponse|string
* - string : chemin du fichier terminé d’uploadé
**/
@ -116,7 +115,7 @@ class Flow {
if (!$this->trouverPrefixe()) {
return $this->response(415);
}
if (!empty($_POST) and !empty($_FILES) ) {
if (!empty($_POST) and !empty($_FILES)) {
return $this->handleChunk();
} elseif (!empty($_GET)) {
return $this->handleTestChunk();
@ -195,16 +194,18 @@ class Flow {
$this->info("Réception chunk $identifier$chunkNumber");
if ($maxSize and $totalSize > $maxSize) {
$this->info("Fichier reçu supérieur à taille autorisée");
return $this->responseError(_T("bigup:erreur_taille_max", ['taille' => taille_en_octets($maxSize)]));
$this->info('Fichier reçu supérieur à taille autorisée');
return $this->responseError(_T('bigup:erreur_taille_max', ['taille' => taille_en_octets($maxSize)]));
}
$file = reset($_FILES);
if (!$this->isChunkUploaded($identifier, $filename, $chunkNumber)) {
if (!GestionRepertoires::deplacer_fichier_upload(
$file['tmp_name'],
$this->tmpChunkPathFile($identifier, $filename, $chunkNumber))
if (
!GestionRepertoires::deplacer_fichier_upload(
$file['tmp_name'],
$this->tmpChunkPathFile($identifier, $filename, $chunkNumber)
)
) {
return $this->response(415);
}
@ -227,8 +228,8 @@ class Flow {
// recomposer le fichier
$fullFile = $this->createFileFromChunks($this->getChunkFiles($chemin_parts), $chemin_final);
if (!$fullFile) {
// on ne devrait jamais arriver là !
$this->error("! Création du fichier complet en échec (" . $chemin_final . ").");
// on ne devrait jamais arriver là !
$this->error('! Création du fichier complet en échec (' . $chemin_final . ').');
return $this->response(415);
}
@ -330,7 +331,7 @@ class Flow {
* Recrée le fichier complet à partir des morceaux de fichiers
*
* Supprime les morceaux si l'opération réussie.
*
*
* @param array $chunkFiles
* Chemin des morceaux de fichiers à concaténer (dans l'ordre)
* @param string $destFile Chemin du fichier à créer avec les morceaux
@ -352,7 +353,7 @@ class Flow {
// on le déplace simplement au bon endroit
if (count($chunkFiles) == 1) {
if (@rename($chunkFiles[0], $destFile)) {
$this->info("Fichier complet déplacé : " . $destFile);
$this->info('Fichier complet déplacé : ' . $destFile);
return $destFile;
}
}
@ -367,8 +368,8 @@ class Flow {
return false;
}
$this->info("Fichier complet recréé : " . $destFile);
$this->debug("Suppression des morceaux.");
$this->info('Fichier complet recréé : ' . $destFile);
$this->debug('Suppression des morceaux.');
foreach ($chunkFiles as $f) {
@unlink($f);
}

4
inc/Bigup/Formulaire.php

@ -20,7 +20,6 @@ include_spip('inc/flock');
**/
class Formulaire
{
use LogTrait;
/**
@ -123,7 +122,6 @@ class Formulaire
$remplacements = 0;
foreach ($champs as $champ) {
$regexp = self::regexp_input_name($champ);
if (preg_match($regexp, $this->formulaire, $regs)) {
@ -441,4 +439,4 @@ class Formulaire
public static function inserer_attribut($balise, $attribut, $valeur) {
return inserer_attribut($balise, $attribut, $valeur);
}
}
}

13
inc/Bigup/GestionRepertoires.php

@ -36,7 +36,7 @@ class GestionRepertoires {
include_spip('inc/charsets');
$nom = translitteration($nom);
// éviter les balises
$nom = preg_replace("/<[^>]*>/", '', $nom);
$nom = preg_replace('/<[^>]*>/', '', $nom);
// éviter * . " / \ [ ] : ; | = , et bien d'autres
$nom = preg_replace('/\W/u', '_', $nom);
return $nom;
@ -68,12 +68,12 @@ class GestionRepertoires {
* false en cas d'échec
* Chemin du répertoire sinon
*/
public static function creer_sous_repertoire($dest){
public static function creer_sous_repertoire($dest) {
if (!$dest) {
return false;
}
$dest = rtrim($dest, "/");
$dest = rtrim($dest, '/');
$final = basename($dest);
$base = dirname($dest);
$create = [];
@ -84,7 +84,7 @@ class GestionRepertoires {
$base = dirname($base);
}
while (count($create)){
while (count($create)) {
if (!is_writable($base)) {
return false;
}
@ -309,7 +309,7 @@ class GestionRepertoires {
* - `false` : valeur par défaut. On ne fait que copier le fichier source vers la destination.
* @return bool|mixed|string
*/
public static function deplacer_fichier_upload($source, $dest, $move=false) {
public static function deplacer_fichier_upload($source, $dest, $move = false) {
// Securite
if (substr($dest, 0, strlen(_DIR_RACINE)) == _DIR_RACINE) {
$dest = _DIR_RACINE . preg_replace(',\.\.+,', '.', substr($dest, strlen(_DIR_RACINE)));
@ -335,5 +335,4 @@ class GestionRepertoires {
return $ok ? $dest : false;
}
}
}

19
inc/Bigup/Identifier.php

@ -18,7 +18,6 @@ include_spip('inc/Bigup/LogTrait');
* Gère l'identification du formulaire
**/
class Identifier {
use LogTrait;
/**
@ -120,7 +119,7 @@ class Identifier {
* @return Identifier
*/
public static function depuisRequest() {
$identifier = new self;
$identifier = new self();
$identifier->recuperer_parametres();
return $identifier;
}
@ -219,7 +218,7 @@ class Identifier {
**/
public function identifier_formulaire() {
include_spip('inc/securiser_action');
if ($identifier_args = charger_fonction("identifier", "formulaires/" . $this->formulaire, true)) {
if ($identifier_args = charger_fonction('identifier', 'formulaires/' . $this->formulaire, true)) {
include_spip('inc/filtres');
$args = decoder_contexte_ajax($this->formulaire_args, $this->formulaire);
$identite = call_user_func_array($identifier_args, $args);
@ -262,14 +261,14 @@ class Identifier {
**/
public function verifier_token() {
if (!$this->token) {
$this->debug("Aucun token");
$this->debug('Aucun token');
return false;
}
$_token = explode(':', $this->token);
if (count($_token) != 3) {
$this->debug("Token mal formé");
$this->debug('Token mal formé');
return false;
}
@ -279,23 +278,23 @@ class Identifier {
if (($now - $time) > $this->token_expiration) {
$this->log("Token expiré");
$this->log('Token expiré');
return false;
}
if (!$this->formulaire) {
$this->log("Vérifier token : nom du formulaire absent");
$this->log('Vérifier token : nom du formulaire absent');
return false;
}
if (!$this->formulaire_args) {
$this->log("Vérifier token : hash du formulaire absent");
$this->log('Vérifier token : hash du formulaire absent');
return false;
}
include_spip('inc/securiser_action');
if (!verifier_action_auteur("bigup/$this->formulaire/$this->formulaire_args/$champ/$time", $cle)) {
$this->error("Token invalide");
$this->error('Token invalide');
return false;
}
@ -305,4 +304,4 @@ class Identifier {
return true;
}
}
}

2
inc/Bigup/LogTrait.php

@ -23,7 +23,7 @@ trait LogTrait {
* @param int $gravite
**/
public static function log($quoi, $gravite = _LOG_INFO_IMPORTANTE) {
spip_log($quoi, "bigup." . $gravite);
spip_log($quoi, 'bigup.' . $gravite);
}
public static function debug($quoi) {

13
inc/Bigup/Repondre.php

@ -22,7 +22,6 @@ namespace Spip\Bigup;
*
**/
class Repondre {
use LogTrait;
/**
@ -144,12 +143,12 @@ class Repondre {
# Files::integrer_fichier($res);
// envoyer quelques infos sur le fichier reçu
if ($desc = CacheFichiers::obtenir_description_fichier($res)
and $desc = self::nettoyer_description_fichier_retour_ajax($desc)) {
if (
$desc = CacheFichiers::obtenir_description_fichier($res)
and $desc = self::nettoyer_description_fichier_retour_ajax($desc)
) {
$this->send(200, $desc);
}
}
$this->send($res->code, $res->data);
@ -166,7 +165,7 @@ class Repondre {
self::debug("> send $code");
http_response_code($code);
if ($data) {
header("Content-Type: application/json; charset=" . $GLOBALS['meta']['charset']);
header('Content-Type: application/json; charset=' . $GLOBALS['meta']['charset']);
echo json_encode($data);
}
exit;
@ -195,4 +194,4 @@ class Repondre {
);
return $description;
}
}
}

15
phpcs.xml.dist

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<ruleset>
<file>.</file>
<exclude-pattern>vendor/*</exclude-pattern>
<exclude-pattern>lang/*</exclude-pattern>
<exclude-pattern>lib/*</exclude-pattern>
<rule ref="SPIP41"/>
<config name="ignore_warnings_on_exit" value="1"/>
<arg name="cache" value=".php_cs.cache"/>
<arg name="report-full" value=".php_cs.txt"/>
<arg name="report-summary"/>
<arg value="s"/>
</ruleset>

407
phpstan-baseline.neon

@ -0,0 +1,407 @@
parameters:
ignoreErrors:
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: action/bigup.php
-
message: "#^Function balise_INCLURE not found\\.$#"
count: 1
path: balise/saisie_fichier.php
-
message: "#^Function balise_INCLURE_dist not found\\.$#"
count: 1
path: balise/saisie_fichier.php
-
message: "#^Function erreur_squelette not found\\.$#"
count: 1
path: balise/saisie_fichier.php
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: balise/saisie_fichier.php
-
message: "#^Function effacer_meta not found\\.$#"
count: 1
path: bigup_administrations.php
-
message: "#^Function include_spip not found\\.$#"
count: 2
path: bigup_administrations.php
-
message: "#^Function maj_plugin not found\\.$#"
count: 1
path: bigup_administrations.php
-
message: "#^Function medias_inigetoctets not found\\.$#"
count: 1
path: bigup_administrations.php
-
message: "#^Function calculer_action_auteur not found\\.$#"
count: 1
path: bigup_fonctions.php
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: bigup_fonctions.php
-
message: "#^Function interprete_argument_balise not found\\.$#"
count: 4
path: bigup_fonctions.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: bigup_fonctions.php
-
message: "#^Function table_valeur not found\\.$#"
count: 2
path: bigup_fonctions.php
-
message: "#^Function _T not found\\.$#"
count: 1
path: bigup_pipelines.php
-
message: "#^Function _request not found\\.$#"
count: 6
path: bigup_pipelines.php
-
message: "#^Function charger_fonction not found\\.$#"
count: 1
path: bigup_pipelines.php
-
message: "#^Function find_in_path not found\\.$#"
count: 1
path: bigup_pipelines.php
-
message: "#^Function include_spip not found\\.$#"
count: 6
path: bigup_pipelines.php
-
message: "#^Function lire_config not found\\.$#"
count: 5
path: bigup_pipelines.php
-
message: "#^Function produire_fond_statique not found\\.$#"
count: 2
path: bigup_pipelines.php
-
message: "#^Function test_espace_prive not found\\.$#"
count: 2
path: bigup_pipelines.php
-
message: "#^Function timestamp not found\\.$#"
count: 1
path: bigup_pipelines.php
-
message: "#^Function _T not found\\.$#"
count: 1
path: formulaires/tester_bigup.php
-
message: "#^Function _request not found\\.$#"
count: 1
path: formulaires/tester_bigup.php
-
message: "#^Function spip_log not found\\.$#"
count: 3
path: formulaires/tester_bigup.php
-
message: "#^Function _T not found\\.$#"
count: 1
path: formulaires/tester_bigup_extended.php
-
message: "#^Function _request not found\\.$#"
count: 1
path: formulaires/tester_bigup_extended.php
-
message: "#^Function spip_log not found\\.$#"
count: 3
path: formulaires/tester_bigup_extended.php
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: genie/bigup_nettoyer_repertoire_upload.php
-
message: "#^Function _request not found\\.$#"
count: 1
path: inc/Bigup.php
-
message: "#^Function include_spip not found\\.$#"
count: 11
path: inc/Bigup.php
-
message: "#^Function set_request not found\\.$#"
count: 2
path: inc/Bigup.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/Cache.php
-
message: "#^Function corriger_extension not found\\.$#"
count: 1
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function ecrire_fichier not found\\.$#"
count: 1
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function extraire_attribut not found\\.$#"
count: 3
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function image_reduire not found\\.$#"
count: 1
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function include_spip not found\\.$#"
count: 3
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function lire_fichier not found\\.$#"
count: 2
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function supprimer_fichier not found\\.$#"
count: 1
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function supprimer_timestamp not found\\.$#"
count: 1
path: inc/Bigup/CacheFichiers.php
-
message: "#^Undefined variable\\: \\$json$#"
count: 2
path: inc/Bigup/CacheFichiers.php
-
message: "#^Undefined variable\\: \\$vignette$#"
count: 2
path: inc/Bigup/CacheFichiers.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/CacheRepertoire.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/Files.php
-
message: "#^Undefined variable\\: \\$x$#"
count: 2
path: inc/Bigup/Files.php
-
message: "#^Function _T not found\\.$#"
count: 1
path: inc/Bigup/Flow.php
-
message: "#^Function _request not found\\.$#"
count: 3
path: inc/Bigup/Flow.php
-
message: "#^Function include_spip not found\\.$#"
count: 1
path: inc/Bigup/Flow.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/Flow.php
-
message: "#^Function taille_en_octets not found\\.$#"
count: 1
path: inc/Bigup/Flow.php
-
message: "#^Function find_in_path not found\\.$#"
count: 1
path: inc/Bigup/Formulaire.php
-
message: "#^Function include_spip not found\\.$#"
count: 4
path: inc/Bigup/Formulaire.php
-
message: "#^Function inserer_attribut not found\\.$#"
count: 1
path: inc/Bigup/Formulaire.php
-
message: "#^Function recuperer_fond not found\\.$#"
count: 1
path: inc/Bigup/Formulaire.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/Formulaire.php
-
message: "#^Function table_valeur not found\\.$#"
count: 1
path: inc/Bigup/Formulaire.php
-
message: "#^Function timestamp not found\\.$#"
count: 1
path: inc/Bigup/Formulaire.php
-
message: "#^Function corriger_extension not found\\.$#"
count: 1
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function include_spip not found\\.$#"
count: 4
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function jeune_fichier not found\\.$#"
count: 1
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function sous_repertoire not found\\.$#"
count: 2
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function supprimer_fichier not found\\.$#"
count: 1
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function supprimer_repertoire not found\\.$#"
count: 6
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function translitteration not found\\.$#"
count: 1
path: inc/Bigup/GestionRepertoires.php
-
message: "#^Function _request not found\\.$#"
count: 3
path: inc/Bigup/Identifier.php
-
message: "#^Function charger_fonction not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function decoder_contexte_ajax not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function encoder_contexte_ajax not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function include_spip not found\\.$#"
count: 5
path: inc/Bigup/Identifier.php
-
message: "#^Function lire_config not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function secret_du_site not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function session_get not found\\.$#"
count: 2
path: inc/Bigup/Identifier.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function verifier_action_auteur not found\\.$#"
count: 1
path: inc/Bigup/Identifier.php
-
message: "#^Function _request not found\\.$#"
count: 2
path: inc/Bigup/Repondre.php
-
message: "#^Function spip_log not found\\.$#"
count: 1
path: inc/Bigup/Repondre.php
-
message: "#^Result of method Spip\\\\Bigup\\\\Repondre\\:\\:send\\(\\) \\(void\\) is used\\.$#"
count: 5
path: inc/Bigup/Repondre.php

13
phpstan.neon.dist

@ -0,0 +1,13 @@
includes:
- phpstan-baseline.neon
parameters:
paths:
- .
excludePaths:
analyseAndScan:
- vendor
- lang
analyse:
- lib
level: 0
Loading…
Cancel
Save