Anomalie #4532
ferméImpossible d'utiliser des Fully Qualified Class Name pour l'appel d'une méthode statique d'une classe pour une valeur par défaut
100%
Étendre la syntaxe du check pour accepter les namespaces.
Vérifier aussi pour les attributs calculés.
Ajouter test dans le PU pour couvrir ces cas.
Description
Testé en 3.2.13
Si dans un fichier on déclare par exemple :
DEFAULT;attr_test;::myFunction();;;;;;;;;;;;;
Il n'y a pas de problème si la méthode myFunction est déclarée dans la Classe associée.
Par contre, si on essaie de faire appel à une méthode déclarée dans une autre classe qui utilise un namespace, on ne peut pas donner le FQCN de la classe dans le fichier, par exemple :
DEFAULT;attr_test;Toto\Test\MyClass::myFunction();;;;;;;;;;;;;
lève l'erreur suivante :
ERROR:{ATTR1250} syntax error in method call (phpfunc) for attribute "attr_test" : {ATTR1253} syntax error in class name in method call: "Toto\Test\MyClass"
Cela vient du fait que lors du parse du nom de la classe on fait appel à la méthode isPHPName() de la classe FDL/parseFamilyFunction qui retourne le preg_match suivant :
return preg_match('/^[a-z_][a-z0-9_]*$/i', $s);
Ce qui ne permet pas d'utiliser le caractère "\" pour un nom de classe.
Mis à jour par Marc Claverie il y a environ 12 ans
- Statut changé de Nouveau à À analyser
- Assigné à mis à Éric Brison
- Version cible mis à 3.3.0
Mis à jour par Marc Claverie il y a environ 12 ans
- Version cible changé de 3.3.0 à 3.2.14
Mis à jour par Éric Brison il y a environ 12 ans
- Statut changé de À analyser à Analysé
- Assigné à
Éric Brisonsupprimé - Temps estimé mis à 4:00 h
- Solution proposée mis à jour (diff)
Mis à jour par Jérôme Augé il y a environ 12 ans
- Statut changé de Analysé à Assigné
- Assigné à mis à Jérôme Augé
Mis à jour par Éric Brison il y a environ 12 ans
- Statut changé de Assigné à Intégré
- Temps estimé
4:00 hsupprimé
Appliqué par commit dynacase-core|commit:5913613856a42eaec1588abcefc066183c1cd1ca.