From d994e967982e030edffbdcaeef838f15dde7b23b Mon Sep 17 00:00:00 2001
From: JamesRezo <james@rezo.net>
Date: Mon, 16 Dec 2024 13:35:14 +0100
Subject: [PATCH 1/2] test: remplacement phpcs -> ecs

---
 .gitattributes |  2 +-
 .gitignore     |  3 ---
 composer.json  | 11 +++--------
 ecs.php        | 11 +++++++++++
 phpcs.xml.dist | 14 --------------
 rector.php     |  3 ++-
 6 files changed, 17 insertions(+), 27 deletions(-)
 create mode 100644 ecs.php
 delete mode 100644 phpcs.xml.dist

diff --git a/.gitattributes b/.gitattributes
index 88b1362..1d35995 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,8 +1,8 @@
 /.editorconfig export-ignore
 /.gitattributes export-ignore
 /.gitignore export-ignore
-/phpcs.xml.dist export-ignore
 /phpstan.neon.dist export-ignore
 /phpstan-baseline.neon export-ignore
 /rector.php export-ignore
+/ecs.php export-ignore
 /tests export-ignore
diff --git a/.gitignore b/.gitignore
index f6fb500..fd66d5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,4 @@
 /vendor/
 /composer.phar
 /composer.lock
-/phpcs.xml
 /phpstan.neon
-/.php_cs.cache
-/.php_cs.txt
diff --git a/composer.json b/composer.json
index 879f548..7288e3b 100644
--- a/composer.json
+++ b/composer.json
@@ -14,11 +14,9 @@
         "php": "^8.2"
     },
     "require-dev": {
-        "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
-        "phpcompatibility/php-compatibility": "dev-develop",
-        "rector/rector": "^1.2",
-        "spip-league/sdk": "^1.0",
-        "spip/coding-standards": "^1.3"
+        "rector/rector": "^2.0",
+        "spip-league/easy-coding-standard": "^1.1",
+        "spip-league/sdk": "^1.0"
     },
     "repositories": {
         "spip": {
@@ -43,9 +41,6 @@
         ]
     },
     "config": {
-        "allow-plugins": {
-            "dealerdirect/phpcodesniffer-composer-installer": true
-        },
         "platform": {
             "php": "8.2.26"
         }
diff --git a/ecs.php b/ecs.php
new file mode 100644
index 0000000..4b34a3c
--- /dev/null
+++ b/ecs.php
@@ -0,0 +1,11 @@
+<?php
+
+use SpipLeague\EasyCodingStandard\Set\SetList;
+use Symplify\EasyCodingStandard\Config\ECSConfig;
+
+return ECSConfig::configure()
+	->withSets([SetList::SPIP])
+	->withPaths([__DIR__])
+	->withRootFiles()
+	->withSkip([__DIR__ . '/lang', __DIR__ . '/vendor'])
+;
diff --git a/phpcs.xml.dist b/phpcs.xml.dist
deleted file mode 100644
index 1f70e8e..0000000
--- a/phpcs.xml.dist
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<ruleset>
-    <file>.</file>
-    <exclude-pattern>vendor/*</exclude-pattern>
-    <exclude-pattern>lang/*</exclude-pattern>
-
-    <rule ref="SPIP50"/>
-
-    <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>
diff --git a/rector.php b/rector.php
index db98fed..e7470db 100644
--- a/rector.php
+++ b/rector.php
@@ -18,6 +18,7 @@ return static function (RectorConfig $rectorConfig): void {
     ]);
 
 	$rectorConfig->sets([
-		LevelSetList::UP_TO_PHP_81
+		LevelSetList::UP_TO_PHP_81,
+		LevelSetList::UP_TO_PHP_82,
 	]);
 };
-- 
GitLab


From f83e9c7c8d21e3785e82adbfba62d8372b32d30d Mon Sep 17 00:00:00 2001
From: JamesRezo <james@rezo.net>
Date: Mon, 16 Dec 2024 13:35:27 +0100
Subject: [PATCH 2/2] chore: passe ecs

---
 action/restaurer.php                          |  2 +-
 action/sauvegarder.php                        |  9 ++++++--
 base/restaurer.php                            | 19 ++++++++++-----
 formulaires/restaurer.php                     |  4 ++--
 formulaires/sauvegarder.php                   | 15 ++++--------
 inc/dump.php                                  | 20 ++++++----------
 inc/sauvegarder.php                           | 11 +++++----
 .../contenu/restaurer_fonctions.php           |  2 +-
 .../contenu/sauvegarder_fonctions.php         |  5 +++-
 rector.php                                    | 23 ++++++++-----------
 10 files changed, 56 insertions(+), 54 deletions(-)

diff --git a/action/restaurer.php b/action/restaurer.php
index a6c2e0f..e16d649 100644
--- a/action/restaurer.php
+++ b/action/restaurer.php
@@ -54,7 +54,7 @@ function action_restaurer_dist($arg = null) {
 	}
 
 	// forcer l'envoi du buffer par tous les moyens !
-	echo(str_repeat("<br />\r\n", 256));
+	echo str_repeat("<br />\r\n", 256);
 	while (@ob_get_level()) {
 		@ob_flush();
 		@flush();
diff --git a/action/sauvegarder.php b/action/sauvegarder.php
index 7ea14bf..c19a6f5 100644
--- a/action/sauvegarder.php
+++ b/action/sauvegarder.php
@@ -36,7 +36,12 @@ function action_sauvegarder_dist($arg = null) {
 	}
 
 	$status_file = $arg;
-	$redirect = parametre_url(generer_action_auteur('sauvegarder', $status_file), 'step', intval(_request('step') + 1), '&');
+	$redirect = parametre_url(
+		generer_action_auteur('sauvegarder', $status_file),
+		'step',
+		intval(_request('step') + 1),
+		'&'
+	);
 
 	// lancer export qui va se relancer jusqu'a sa fin
 	$sauvegarder = charger_fonction('sauvegarder', 'inc');
@@ -49,7 +54,7 @@ function action_sauvegarder_dist($arg = null) {
 	}
 
 	// forcer l'envoi du buffer par tous les moyens !
-	echo(str_repeat("<br />\r\n", 256));
+	echo str_repeat("<br />\r\n", 256);
 	while (@ob_get_level()) {
 		@ob_flush();
 		@flush();
diff --git a/base/restaurer.php b/base/restaurer.php
index 3c5414b..58e4b07 100644
--- a/base/restaurer.php
+++ b/base/restaurer.php
@@ -31,7 +31,12 @@ function base_restaurer_dist($titre = '', $reprise = false) {
 		or !$status = unserialize($status)
 	) {
 	} else {
-		$redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), 'step', intval(_request('step') + 1), '&');
+		$redirect = parametre_url(
+			generer_action_auteur('restaurer', _DUMP_STATUS_FILE),
+			'step',
+			intval(_request('step') + 1),
+			'&'
+		);
 
 		$timeout = ini_get('max_execution_time');
 		// valeur conservatrice si on a pas reussi a lire le max_execution_time
@@ -45,10 +50,12 @@ function base_restaurer_dist($titre = '', $reprise = false) {
 			@ini_set('zlib.output_compression', '0'); // pour permettre l'affichage au fur et a mesure
 		}
 
-		$titre = _T('dump:restauration_en_cours') . ' (' . (is_countable($status['tables']) ? count($status['tables']) : 0) . ') ';
+		$titre = _T('dump:restauration_en_cours') . ' (' . (is_countable($status['tables']) ? count(
+			$status['tables']
+		) : 0) . ') ';
 		$balise_img = chercher_filtre('balise_img');
 		$titre .= $balise_img(chemin_image('loader.svg'), '', 'loader');
-		echo(install_debut_html($titre));
+		echo install_debut_html($titre);
 		// script de rechargement auto sur timeout
 		echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ')');
 		echo "<div style='text-align: left'>\n";
@@ -64,7 +71,7 @@ function base_restaurer_dist($titre = '', $reprise = false) {
 				'max_time' => $max_time,
 				'no_erase_dest' => lister_tables_noerase(),
 				'where' => $status['where'] ?: [],
-				'desc_tables_dest' => []
+				'desc_tables_dest' => [],
 			];
 			if (
 				$desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump')
@@ -79,13 +86,13 @@ function base_restaurer_dist($titre = '', $reprise = false) {
 			sql_updateq('spip_meta', ['impt' => 'oui'], "nom LIKE '%_base_version'", [], 'dump');
 		}
 
-		echo("</div>\n");
+		echo "</div>\n";
 
 		if (!$res) {
 			echo dump_relance($redirect);
 		}
 
-		echo(install_fin_html());
+		echo install_fin_html();
 		ob_end_flush();
 		flush();
 
diff --git a/formulaires/restaurer.php b/formulaires/restaurer.php
index 68c090e..afa9ffa 100644
--- a/formulaires/restaurer.php
+++ b/formulaires/restaurer.php
@@ -146,7 +146,7 @@ function formulaires_restaurer_traiter_dist() {
 		$redirect = generer_action_auteur('restaurer', $status_file);
 
 		return ['message_ok' => 'ok', 'redirect' => $redirect];
-	} else {
-		return ['message_erreur' => $res];
 	}
+	return ['message_erreur' => $res];
+
 }
diff --git a/formulaires/sauvegarder.php b/formulaires/sauvegarder.php
index c3058b4..b31dcb5 100644
--- a/formulaires/sauvegarder.php
+++ b/formulaires/sauvegarder.php
@@ -30,7 +30,7 @@ function formulaires_sauvegarder_charger_dist() {
 
 	// ici on liste tout, les tables exclue sont simplement non cochees
 	$exclude = lister_tables_noexport();
-	[$tables, ] = base_liste_table_for_dump($exclude);
+	[$tables] = base_liste_table_for_dump($exclude);
 	$tables = base_lister_toutes_tables('', $tables);
 
 	$valeurs = [
@@ -41,12 +41,7 @@ function formulaires_sauvegarder_charger_dist() {
 		'tout_sauvegarder' => (_request('nom_sauvegarde') and !_request('tout_sauvegarder')) ? '' : 'oui',
 		'_tables' => "<ol class='spip'><li class='choix'>\n" . join(
 			"</li>\n<li class='choix'>",
-			base_saisie_tables(
-				'tables',
-				$tables,
-				$exclude,
-				_request('nom_sauvegarde') ? (_request('tables') ?: []) : null
-			)
+			base_saisie_tables('tables', $tables, $exclude, _request('nom_sauvegarde') ? (_request('tables') ?: []) : null)
 		) . "</li></ol>\n",
 		'_prefixe' => base_prefixe_tables(''),
 	];
@@ -88,7 +83,7 @@ function formulaires_sauvegarder_traiter_dist() {
 		// ici on prend toutes les tables sauf celles exclues par defaut
 		// (tables de cache en pratique)
 		$exclude = lister_tables_noexport();
-		[$tables, ] = base_liste_table_for_dump($exclude);
+		[$tables] = base_liste_table_for_dump($exclude);
 		$tables = base_lister_toutes_tables('', $tables, $exclude);
 	} else {
 		$tables = _request('tables');
@@ -104,7 +99,7 @@ function formulaires_sauvegarder_traiter_dist() {
 		$redirect = generer_action_auteur('sauvegarder', $status_file);
 
 		return ['message_ok' => 'ok', 'redirect' => $redirect];
-	} else {
-		return ['message_erreur' => $res];
 	}
+	return ['message_erreur' => $res];
+
 }
diff --git a/inc/dump.php b/inc/dump.php
index e9e1541..3738d78 100644
--- a/inc/dump.php
+++ b/inc/dump.php
@@ -18,7 +18,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 	return;
 }
 
-
 /**
  * Répertoire de sauvegarde
  *
@@ -41,7 +40,6 @@ function dump_repertoire() {
 	return $repertoire;
 }
 
-
 /**
  * Nom du fichier de sauvegarde
  *
@@ -152,7 +150,7 @@ function dump_init($status_file, $archive, $tables = null, $where = [], $action
 	}
 
 	if (!$tables) {
-		[$tables, ] = base_liste_table_for_dump(lister_tables_noexport());
+		[$tables] = base_liste_table_for_dump(lister_tables_noexport());
 	}
 	$status = ['tables' => $tables, 'where' => $where, 'archive' => $archive];
 
@@ -214,7 +212,6 @@ function dump_relance($redirect) {
 	return "<script language=\"JavaScript\" type=\"text/javascript\">window.setTimeout('location.href=\"$redirect\";',300);</script>\n";
 }
 
-
 /**
  * Marquer la procédure de dump comme finie
  *
@@ -306,7 +303,7 @@ function dump_lister_sauvegardes($dir, $tri = 'nom', $extension = 'sqlite', $lim
 /**
  * Extraire le statut contenu dans un fichier
  *
- * @param $status_file       Nom du fichier stocke dans _DIR_TMP
+ * @param Nom       $status_file du fichier stocke dans _DIR_TMP
  * @return array|string
  */
 function dump_lire_status($status_file) {
@@ -328,7 +325,7 @@ function dump_lire_status($status_file) {
 /**
  * Verifier qu'un sauvegarde est finie
  *
- * @param $status_file      Nom du fichier stocke dans _DIR_TMP
+ * @param Nom      $status_file du fichier stocke dans _DIR_TMP
  * @return string           Chaine non vide s'il reste des choses a faire
  */
 function dump_verifie_sauvegarde_finie($status_file) {
@@ -346,7 +343,7 @@ function dump_verifie_sauvegarde_finie($status_file) {
 /**
  * Recuperer le nom du fichier d'archivage qui est memorise dans le fichier de statut
  *
- * @param $status_file      Nom du fichier stocke dans _DIR_TMP
+ * @param Nom      $status_file du fichier stocke dans _DIR_TMP
  * @return string           Nom ou chaine vide si on a un probleme
  */
 function dump_nom_sauvegarde($status_file) {
@@ -363,7 +360,7 @@ function dump_nom_sauvegarde($status_file) {
 /**
  * Recuperer la taille du fichier de sauvegarde
  *
- * @param $status_file      Nom du fichier stocke dans _DIR_TMP
+ * @param Nom      $status_file du fichier stocke dans _DIR_TMP
  * @return string/int       Taille ou Chaine vide en cas de probleme
  */
 function dump_taille_sauvegarde($status_file) {
@@ -380,7 +377,7 @@ function dump_taille_sauvegarde($status_file) {
 /**
  * Recuperer la date de derniere modification du fichier de sauvegarde
  *
- * @param $status_file      Nom du fichier stocke dans _DIR_TMP
+ * @param Nom      $status_file du fichier stocke dans _DIR_TMP
  * @return string/int       Date ou Chaine vide en cas de probleme
  */
 function dump_date_sauvegarde($status_file) {
@@ -401,10 +398,7 @@ function dump_date_sauvegarde($status_file) {
  * sérialisées sur le statut de l'export.
  *
  * @uses $GLOBALS['visiteur_session']['id_auteur']
- *
- * @param int $rub
- * @return string
  */
 function base_dump_meta_name(int $rub): string {
-    return "status_dump_{$rub}_" . abs($GLOBALS['visiteur_session']['id_auteur']);
+	return "status_dump_{$rub}_" . abs($GLOBALS['visiteur_session']['id_auteur']);
 }
diff --git a/inc/sauvegarder.php b/inc/sauvegarder.php
index 398866d..eb5affa 100644
--- a/inc/sauvegarder.php
+++ b/inc/sauvegarder.php
@@ -21,7 +21,6 @@ include_spip('inc/dump');
  *
  * @param string $status_file Nom du fichier de status (stocke dans _DIR_TMP)
  * @param string $redirect Redirection apres la sauvegarde
- * @return bool
  */
 function inc_sauvegarder_dist(string $status_file, string $redirect = ''): bool {
 	$status = [];
@@ -43,10 +42,12 @@ function inc_sauvegarder_dist(string $status_file, string $redirect = ''): bool
 			@ini_set('zlib.output_compression', '0'); // pour permettre l'affichage au fur et a mesure
 		}
 
-		$titre = _T('dump:sauvegarde_en_cours') . ' (' . (is_countable($status['tables']) ? count($status['tables']) : 0) . ') ';
+		$titre = _T('dump:sauvegarde_en_cours') . ' (' . (is_countable($status['tables']) ? count(
+			$status['tables']
+		) : 0) . ') ';
 		$balise_img = chercher_filtre('balise_img');
 		$titre .= $balise_img(chemin_image('loader.svg'), '', 'loader');
-		echo(install_debut_html($titre));
+		echo install_debut_html($titre);
 		// script de rechargement auto sur timeout
 		echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ')');
 		echo "<div style='text-align: left'>\n";
@@ -66,12 +67,12 @@ function inc_sauvegarder_dist(string $status_file, string $redirect = ''): bool
 			$res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
 		}
 
-		echo("</div>\n");
+		echo "</div>\n";
 
 		if (!$res and $redirect) {
 			echo dump_relance($redirect);
 		}
-		echo(install_fin_html());
+		echo install_fin_html();
 		if (@ob_get_contents()) {
 			ob_end_flush();
 		}
diff --git a/prive/squelettes/contenu/restaurer_fonctions.php b/prive/squelettes/contenu/restaurer_fonctions.php
index 7fc07e0..c181452 100644
--- a/prive/squelettes/contenu/restaurer_fonctions.php
+++ b/prive/squelettes/contenu/restaurer_fonctions.php
@@ -42,7 +42,7 @@ function dump_afficher_tables_restaurees_erreurs($status_file) {
 			$n_dump = intval(sql_countsel($t));
 			if ($n_dump < $n) {
 				$erreurs[$t] = _T('dump:erreur_table_donnees_manquantes', ['table' => "<strong>$t</strong>"]);
-			};
+			}
 		}
 	}
 
diff --git a/prive/squelettes/contenu/sauvegarder_fonctions.php b/prive/squelettes/contenu/sauvegarder_fonctions.php
index 4f4f90b..efc0db9 100644
--- a/prive/squelettes/contenu/sauvegarder_fonctions.php
+++ b/prive/squelettes/contenu/sauvegarder_fonctions.php
@@ -50,7 +50,10 @@ function dump_afficher_tables_sauvegardees($status_file) {
 		case 0:
 			break;
 		case 1:
-			$corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", $tables) . '</li></ul></div>';
+			$corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join(
+				"</li><li class='spip'>",
+				$tables
+			) . '</li></ul></div>';
 			break;
 		default:
 			$n = floor((is_countable($tables) ? count($tables) : 0) / 2);
diff --git a/rector.php b/rector.php
index e7470db..ed2b3ae 100644
--- a/rector.php
+++ b/rector.php
@@ -6,19 +6,16 @@ use Rector\Config\RectorConfig;
 use Rector\Set\ValueObject\LevelSetList;
 
 return static function (RectorConfig $rectorConfig): void {
-    $rectorConfig->paths([
-        __DIR__ . '/action',
-        __DIR__ . '/base',
-        __DIR__ . '/connect',
-        __DIR__ . '/exec',
-        __DIR__ . '/formulaires',
-        __DIR__ . '/inc',
-        __DIR__ . '/prive',
+	$rectorConfig->paths([
+		__DIR__ . '/action',
+		__DIR__ . '/base',
+		__DIR__ . '/connect',
+		__DIR__ . '/exec',
+		__DIR__ . '/formulaires',
+		__DIR__ . '/inc',
+		__DIR__ . '/prive',
 		__DIR__ . '/dump_autoriser.php',
-    ]);
-
-	$rectorConfig->sets([
-		LevelSetList::UP_TO_PHP_81,
-		LevelSetList::UP_TO_PHP_82,
 	]);
+
+	$rectorConfig->sets([LevelSetList::UP_TO_PHP_81, LevelSetList::UP_TO_PHP_82]);
 };
-- 
GitLab