From 519300f6e8703023e36e68a33bb0f30712559b4f Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Sun, 13 Feb 2022 22:10:48 +0100 Subject: [PATCH] Remplacement des call_user_func et call_user_func_array par des `$func($param)` ou `$func(...$params)` --- ecrire/balise/formulaire_.php | 4 ++-- ecrire/base/upgrade.php | 2 +- ecrire/inc/auth.php | 2 +- ecrire/inc/autoriser.php | 4 +--- ecrire/inc/cvt_configurer.php | 2 +- ecrire/inc/cvt_multietapes.php | 4 ++-- ecrire/inc/exporter_csv.php | 4 ++-- ecrire/inc/filtres.php | 8 ++++---- ecrire/inc/filtres_images_lib_mini.php | 2 +- ecrire/inc/queue.php | 2 +- ecrire/inc/utils.php | 4 ++-- ecrire/public/aiguiller.php | 7 +++---- ecrire/public/fonctions.php | 2 +- ecrire/xml/sax.php | 2 +- 14 files changed, 23 insertions(+), 26 deletions(-) diff --git a/ecrire/balise/formulaire_.php b/ecrire/balise/formulaire_.php index f454302bc5..5ca3262681 100644 --- a/ecrire/balise/formulaire_.php +++ b/ecrire/balise/formulaire_.php @@ -344,7 +344,7 @@ function balise_FORMULAIRE__contexte($form, $args) { */ function formulaire__charger($form, $args, $poste) { if ($charger_valeurs = charger_fonction('charger', "formulaires/$form", true)) { - $valeurs = call_user_func_array($charger_valeurs, $args); + $valeurs = $charger_valeurs(...$args); } else { $valeurs = []; } @@ -407,7 +407,7 @@ function formulaire__charger($form, $args, $poste) { */ function formulaire__identifier($form, $args, $p) { if ($identifier_args = charger_fonction('identifier', "formulaires/$form", true)) { - return call_user_func_array($identifier_args, $args) === call_user_func_array($identifier_args, $p); + return $identifier_args(...$args) === $identifier_args(...$p); } return $args === $p; diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php index c1f8927371..28fccc251c 100644 --- a/ecrire/base/upgrade.php +++ b/ecrire/base/upgrade.php @@ -455,7 +455,7 @@ function serie_alter($serie, $q = [], $meta = '', $table = 'meta', $redirect = ' ecrire_meta($meta2, $i + 1, 'non', $table); } echo (_IS_CLI ? '.' : " <span title='$i'>.</span>"); - call_user_func_array($f, $r); + $f(...$r); // si temps imparti depasse, on relance sans ecrire en meta // car on est peut etre sorti sur timeout si c'est une fonction longue if (time() >= _TIME_OUT) { diff --git a/ecrire/inc/auth.php b/ecrire/inc/auth.php index 53c26762d6..155e898334 100644 --- a/ecrire/inc/auth.php +++ b/ecrire/inc/auth.php @@ -367,7 +367,7 @@ function auth_administrer($fonction, $args, $defaut = false) { $auth = charger_fonction($auth_methode, 'auth', true) and function_exists($f = "auth_{$auth_methode}_$fonction") ) { - $res = call_user_func_array($f, $args); + $res = $f(...$args); } else { $res = $defaut; } diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php index f811dfeb08..751152e0c4 100644 --- a/ecrire/inc/autoriser.php +++ b/ecrire/inc/autoriser.php @@ -111,9 +111,7 @@ if (!function_exists('autoriser')) { pipeline('autoriser'); } - $args = func_get_args(); - - return call_user_func_array('autoriser_dist', $args); + return autoriser_dist($faire, $type, $id, $qui, $opt); } } diff --git a/ecrire/inc/cvt_configurer.php b/ecrire/inc/cvt_configurer.php index 191cc9ef4b..a93be649a6 100644 --- a/ecrire/inc/cvt_configurer.php +++ b/ecrire/inc/cvt_configurer.php @@ -96,7 +96,7 @@ function cvtconf_formulaires_configurer_enregistre($form, $args) { // ce qui permet de prendre en charge une fonction charger() existante // qui prend alors la main sur l'auto detection if ($charger_valeurs = charger_fonction('charger', "formulaires/$form/", true)) { - $valeurs = call_user_func_array($charger_valeurs, $args); + $valeurs = $charger_valeurs(...$args); } $valeurs = pipeline( 'formulaire_charger', diff --git a/ecrire/inc/cvt_multietapes.php b/ecrire/inc/cvt_multietapes.php index f7c0b6dc4c..681bb97ca7 100644 --- a/ecrire/inc/cvt_multietapes.php +++ b/ecrire/inc/cvt_multietapes.php @@ -238,11 +238,11 @@ function cvtmulti_formulaire_verifier_etapes($args, $erreurs) { $e++; $erreurs_etapes[$e] = []; if ($verifier = charger_fonction("verifier_$e", "formulaires/$form/", true)) { - $erreurs_etapes[$e] = call_user_func_array($verifier, $args['args']); + $erreurs_etapes[$e] = $verifier(...$args['args']); } elseif ($verifier = charger_fonction('verifier_etape', "formulaires/$form/", true)) { $a = $args['args']; array_unshift($a, $e); - $erreurs_etapes[$e] = call_user_func_array($verifier, $a); + $erreurs_etapes[$e] = $verifier(...$a); } // et on appelle un pipeline dedie aux etapes, plus easy $args['etape'] = $e; diff --git a/ecrire/inc/exporter_csv.php b/ecrire/inc/exporter_csv.php index 00a08c738f..164c06a41f 100644 --- a/ecrire/inc/exporter_csv.php +++ b/ecrire/inc/exporter_csv.php @@ -54,9 +54,9 @@ function exporter_csv_champ($champ) { * @param callable $callback * @return string */ -function exporter_csv_ligne_numerotee($nb, $ligne, $delim = ',', $importer_charset = null, $callback = null) { +function exporter_csv_ligne_numerotee($nb, $ligne, $delim = ',', $importer_charset = null, ?callable $callback = null) { if ($callback) { - $ligne = call_user_func($callback, $nb, $ligne, $delim, $importer_charset); + $ligne = $callback($nb, $ligne, $delim, $importer_charset); } $output = join($delim, array_map('exporter_csv_champ', $ligne)) . "\r\n"; if ($importer_charset) { diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index d467853d0f..9de75a20f0 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -353,7 +353,7 @@ function filtrer($filtre) { return image_filtrer($tous); } elseif ($f = chercher_filtre($filtre)) { array_shift($tous); - return call_user_func_array($f, $tous); + return $f(...$tous); } else { // le filtre n'existe pas, on provoque une erreur $msg = ['zbug_erreur_filtre', ['filtre' => texte_script($filtre)]]; @@ -535,7 +535,7 @@ function image_filtrer($args) { }; if ($is_local_file($is_file) or tester_url_absolue($is_file)) { array_unshift($args, "<img src='$is_file' />"); - $res = call_user_func_array($filtre, $args); + $res = $filtre(...$args); statut_effacer_images_temporaires(false); // desactiver pour les appels hors compilo return $res; } @@ -559,7 +559,7 @@ function image_filtrer($args) { and strpos($class, 'no_image_filtrer') === false) ) { array_unshift($args, $tag[3]); - if ($reduit = call_user_func_array($filtre, $args)) { + if ($reduit = $filtre(...$args)) { // En cas de span spip_documents, modifier le style=...width: if ($tag[1]) { $w = extraire_attribut($reduit, 'width'); @@ -578,7 +578,7 @@ function image_filtrer($args) { $srcover = $match[1]; array_shift($args); array_unshift($args, "<img src='" . $match[1] . "' />"); - $srcover_filter = call_user_func_array($filtre, $args); + $srcover_filter = $filtre(...$args); $srcover_filter = extraire_attribut($srcover_filter, 'src'); $reduit = str_replace($srcover, $srcover_filter, $reduit); } diff --git a/ecrire/inc/filtres_images_lib_mini.php b/ecrire/inc/filtres_images_lib_mini.php index 6fb72003ca..2b353d857b 100644 --- a/ecrire/inc/filtres_images_lib_mini.php +++ b/ecrire/inc/filtres_images_lib_mini.php @@ -1081,7 +1081,7 @@ function reconstruire_image_intermediaire($fichier_manquant) { $r = array_pop($reconstruire); $fonction = $r[0]; $args = $r[1]; - call_user_func_array($fonction, $args); + $fonction(...$args); } // cette image intermediaire est commune a plusieurs series de filtre, il faut la conserver // mais l'on peut nettoyer les miettes de sa creation diff --git a/ecrire/inc/queue.php b/ecrire/inc/queue.php index 243639995b..8d03d43aa6 100644 --- a/ecrire/inc/queue.php +++ b/ecrire/inc/queue.php @@ -310,7 +310,7 @@ function queue_start_job($row) { break; default: # plus lent mais completement generique - $res = call_user_func_array($fonction, $args); + $res = $fonction(...$args); } spip_log('queue [' . $row['id_job'] . "]: $fonction() end", 'queue'); diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 577a79ce33..28e6bf3228 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -233,7 +233,7 @@ function include_fichiers_fonctions() { function minipipe($fonc, &$val) { // fonction if (function_exists($fonc)) { - $val = call_user_func($fonc, $val); + $val = $fonc($val); } // Class::Methode else { if ( @@ -241,7 +241,7 @@ function minipipe($fonc, &$val) { and $methode = [$regs[1], $regs[2]] and is_callable($methode) ) { - $val = call_user_func($methode, $val); + $val = $methode($val); } else { spip_log("Erreur - '$fonc' non definie !"); } diff --git a/ecrire/public/aiguiller.php b/ecrire/public/aiguiller.php index c13cf32785..e63a729eaa 100644 --- a/ecrire/public/aiguiller.php +++ b/ecrire/public/aiguiller.php @@ -253,7 +253,7 @@ function traiter_formulaires_dynamiques($get = false) { 'formulaire_verifier', [ 'args' => ['form' => $form, 'args' => $args], - 'data' => $verifier ? call_user_func_array($verifier, $args) : [] + 'data' => $verifier ? $verifier(...$args) : [] ] ); // prise en charge CVT multi etape si besoin @@ -286,7 +286,7 @@ function traiter_formulaires_dynamiques($get = false) { if (isset($post["erreurs_$form"]) and ((is_countable($post["erreurs_$form"]) ? count($post["erreurs_$form"]) : 0) == 0)) { $rev = ''; if ($traiter = charger_fonction('traiter', "formulaires/$form/", true)) { - $rev = call_user_func_array($traiter, $args); + $rev = $traiter(...$args); } $rev = pipeline( @@ -331,8 +331,7 @@ function traiter_formulaires_dynamiques($get = false) { if (find_in_path('formulaire_.php', 'balise/', true)) { include_spip('inc/actions'); include_spip('public/assembler'); - array_unshift($args, $form); - $retour .= inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn', $args), false); + $retour .= inclure_balise_dynamique(balise_formulaire__dyn($form, ...$args), false); // on ajoute un br en display none en tete du retour ajax pour regler un bug dans IE6/7 // sans cela le formulaire n'est pas actif apres le hit ajax // la classe ajax-form-is-ok sert a s'assurer que le retour ajax s'est bien passe diff --git a/ecrire/public/fonctions.php b/ecrire/public/fonctions.php index 9b444600c1..57f5cac708 100644 --- a/ecrire/public/fonctions.php +++ b/ecrire/public/fonctions.php @@ -551,5 +551,5 @@ function appliquer_filtre_sinon($arg, $filtre, $args, $defaut = '') { array_shift($args); // enlever $arg array_shift($args); // enlever $filtre array_unshift($args, $arg); // remettre $arg - return call_user_func_array($f, $args); + return $f(...$args); } diff --git a/ecrire/xml/sax.php b/ecrire/xml/sax.php index d875e15ff8..8537bbfd01 100644 --- a/ecrire/xml/sax.php +++ b/ecrire/xml/sax.php @@ -162,7 +162,7 @@ function xml_sax_dist($page, $apply = false, $phraseur = null, $doctype = '', $c if ($apply) { ob_start(); if (is_array($apply)) { - $r = call_user_func_array($page, $apply); + $r = $page(...$apply); } else { $r = $page(); } -- GitLab