Anomalie #4186
fermé[Autoloader] Ajouter un localIgnore
100%
Actuellement :
Chacun des répertoires livrés par les modules peuvent avoir un fichier ".autoloader-ignore".
Ce fichier permet de lister l'ensemble des noms de fichier ou de répertoire à ignorer.
Seul le nom du fichier (basename) est pris en compte.
Ainsi si le nom "test.php" est inscrit alors tous les fichiers "test.php" inclus dans le répertoire et sous-répertoire sont ignorés.
De même si le nom "test" est inscrit alors tous les fichiers des sous-répertoire "test" sont ignorés.
Ce qui est proposé :
Un répertoire ".autoloader-ignore.d" permet d'indiquer les fichiers contenant la liste des patterns qui doivent être ignorés.
Le mécanisme d'un fichier "ognore" est conservé à la différence que ce sont des patterns qui doivent être inscrits au lieu des noms de fichier.
pattern "test" match le fichier ou répertoire "test". Ne match pas "lib/test"
pattern "test*" match le fichier ou répertoire "test", "test2".
pattern "*test*" match le fichier ou répertoire "test", "test2", "lib/test/z.php"
Le pattern est relatif à la racine d'installation
pattern "/test/*" non autorisé.
pattern "../test/*" non autorisé.
pattern "./test/*" autorisé.
pattern "test/*" équivalent à "test" et équivalent à "./test/*"
Pour l'exemple le fichier ".autoloader-ignore" livré par "core" :
ckeditor
config
context
expire
fckeditor
FDLGEN
Images
jscalendar
locale
programs
var
vaultfs
Sera déplacé dans ".autoloader-ignore.d/dcpCore" Il devient :
ckeditor/*
config/*
context/*
expire/*
fckeditor/*
FDLGEN/*
Images/*
jscalendar/*
locale/*
programs/*
var/*
vaultfs/*
à cela est ajouté :
lib/ext/*
lib/zendframework/*
lib/jquery-dataTables/*
lib/jquery-ui/*
La condition sur l'extension des fichiers à parser reste une condition imposée.
Les fichiers doivent avoir l'extension ".php".
Pour des raisons liées à Dynacase, les fichiers avec le pattern "Method*.php" sont ignorés systématiquement.
Les modules tiers "extjs", "dataTables", et "jquery-ui" livreront en plus un fichier
"ignore" avec "lib/extjs/*" comme contenu (par exemple) pour tout ignorer.
Pour le problème de détection des doublons pour les modules intégrateurs :
dynacase-core ajoute un check qui vérifie la présence des doublons lors de sa mise à jour. Ce programme lance l'autoloader dans un mode "sans-écriture" (dry-run) afin de récupérer la liste des doublons éventuels. Pour des raisons de migration le fichier "po2js.php" (mis dans le fichier ignore) n'est pas considéré comme une erreur (ils sont supprimés lors de la migration). Ce fichier est mis en paramètre de la commande de check.
Description
Actuellement, il n'existe qu'un seul fichier de ignore pour l'autoloader et ce fichier est distribué par core. Il est donc systématiquement ré-initialisé à la mise à jour de core.
De plus, certains éléments exclu sont en dur dans le code.
Mis à jour par Charles Bonnissent il y a presque 13 ans
- Solution proposée mis à jour (diff)
Mis à jour par Marc Claverie il y a presque 13 ans
- Statut changé de Nouveau à À analyser
- Assigné à mis à Éric Brison
- Version cible mis à 3.2.10
- Solution proposée mis à jour (diff)
Mis à jour par Éric Brison il y a plus de 12 ans
- Solution proposée mis à jour (diff)
- Statut changé de À analyser à Analysé
- Assigné à changé de Éric Brison à Jérôme Augé
- Temps estimé mis à 14:00 h
Mis à jour par Éric Brison il y a plus de 12 ans
- Statut changé de Analysé à Intégré
Appliqué par commit commit:3b3834143318847b2859e9250a2d3c65d4e88c69.