Skip to content
Extraits de code Groupes Projets
Valider 9d3360f2 rédigé par Eric Lupinacci's avatar Eric Lupinacci Validation de marcimat
Parcourir les fichiers

feat: ajouter une option à la fonction find_all_in_path() pour renvoyer tous...

feat: ajouter une option à la fonction find_all_in_path() pour renvoyer tous les fichiers répondant à un pattern

Refs: #5454
parent 371dbd0a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -308,7 +308,7 @@ function save_path_cache() { ...@@ -308,7 +308,7 @@ function save_path_cache() {
* Trouve tous les fichiers du path correspondants à un pattern * Trouve tous les fichiers du path correspondants à un pattern
* *
* Pour un nom de fichier donné, ne retourne que le premier qui sera trouvé * Pour un nom de fichier donné, ne retourne que le premier qui sera trouvé
* par un `find_in_path()` * par un `find_in_path()`, sauf si l'option `all_files` est activée.
* *
* @api * @api
* @uses creer_chemin() * @uses creer_chemin()
...@@ -316,10 +316,11 @@ function save_path_cache() { ...@@ -316,10 +316,11 @@ function save_path_cache() {
* *
* @param string $dir * @param string $dir
* @param string $pattern * @param string $pattern
* @param bool $recurs * @param bool $recurs
* @param bool $all_files
* @return array * @return array
*/ */
function find_all_in_path($dir, $pattern, $recurs = false) { function find_all_in_path($dir, $pattern, $recurs = false, bool $all_files = false) {
$liste_fichiers = []; $liste_fichiers = [];
$maxfiles = 10000; $maxfiles = 10000;
...@@ -336,10 +337,13 @@ function find_all_in_path($dir, $pattern, $recurs = false) { ...@@ -336,10 +337,13 @@ function find_all_in_path($dir, $pattern, $recurs = false) {
$liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs); $liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs);
foreach ($liste as $chemin) { foreach ($liste as $chemin) {
$nom = basename($chemin); $nom = basename($chemin);
// ne prendre que les fichiers pas deja trouves if ($all_files) {
// car find_in_path prend le premier qu'il trouve, // On accumule tous les fichiers de même nom
// les autres sont donc masques $liste_fichiers[$nom][] = $chemin;
if (!isset($liste_fichiers[$nom])) { } elseif (!isset($liste_fichiers[$nom])) {
// ne prendre que les fichiers pas deja trouves
// car find_in_path prend le premier qu'il trouve,
// les autres sont donc masques
$liste_fichiers[$nom] = $chemin; $liste_fichiers[$nom] = $chemin;
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter