Projet

Général

Profil

Actions

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

Ajouté par Emmanuel ESCOLA il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
17/02/2014
Echéance:
% réalisé:

100%

Temps estimé:
4.00 h
Version source:
Solution proposée:

É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.

Principaux fichiers impactés:
Complexité:
Contrôle:
Thème:
Régression:

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.


Demandes liées

Copié vers Core - Anomalie #4534: [report #4532] Impossible d'utiliser des Fully Qualified Class Name pour l'appel d'une méthode statique d'une classe pour une valeur par défautFerméÉric Brison17/02/2014

Actions

Mis à jour par Marc Claverie il y a plus de 7 ans

  • Statut changé de Nouveau à À analyser
  • Assigné à mis à Éric Brison
  • Version cible mis à 3.3.0

Mis à jour par Marc Claverie il y a plus de 7 ans

  • Version cible changé de 3.3.0 à 3.2.14

Mis à jour par Éric Brison il y a plus de 7 ans

  • Statut changé de À analyser à Analysé
  • Assigné à Éric Brison supprimé
  • Temps estimé mis à 4.00 h
  • Solution proposée mis à jour (diff)

Mis à jour par Jérôme Augé il y a plus de 7 ans

  • Statut changé de Analysé à Assigné
  • Assigné à mis à Jérôme Augé

Mis à jour par Jérôme Augé il y a plus de 7 ans

  • % réalisé changé de 0 à 100

Mis à jour par Jérôme Augé il y a plus de 7 ans

  • % réalisé changé de 100 à 50

Mis à jour par Jérôme Augé il y a plus de 7 ans

  • % réalisé changé de 50 à 100

Mis à jour par Éric Brison il y a plus de 7 ans

  • Statut changé de Assigné à Intégré
  • Temps estimé 4.00 h supprimé

Appliqué par commit dynacase-core|commit:5913613856a42eaec1588abcefc066183c1cd1ca.

Actions

Formats disponibles : Atom PDF