Anomalie #645
ferméBug dans lib\Galette\Entity\Contribution.php
100%
Description
Il manque un '\' avant Exception aux lignes :
- 346
- 349
- 984
- 987
throw new \Exception('Incorrect format') catch (\Exception $e)
Fichiers
Mis à jour par Johan Cwiklinski il y a plus de 11 ans
- Catégorie mis à Core
- Assigné à mis à Johan Cwiklinski
Mis à jour par Johan Cwiklinski il y a plus de 11 ans
- % réalisé changé de 0 à 100
- Statut changé de Nouveau à Résolu
Appliqué par commit 992d5329d3bf896f085858e5a15f71f3070694ef.
Mis à jour par Johan Cwiklinski il y a plus de 11 ans
Je ne pense pas sortir une nouvelle release 0.7.4.x (il n'y a pas matière à pour le moment de toutes façons) ; c'est donc corrigé uniquement dans la branche develop actuellement donc.
Mis à jour par Roland Telle il y a plus de 11 ans
Galette v0.7.5dev.
Il semblerait que quelques \ aient échappé à la sagacité des chasseurs d'antislashes :-)
Dans Entity/Contribution.php, lignes 351 et 1146,
Dans Entity/Transaction.php, ligne 263
Dans Repository/Groups.php, ligne 348, il y a un espace avant le \ (j'ignore si ça fâche ...)
Dans Reposiroty/Members.php, ligne 1398, même remarque
Dans install/index.php, lignes 423 et 1016
et aussi un peu partout dans les "includes" au point que je me demande si c'est dérangeant ? ;-)
Mis à jour par Johan Cwiklinski il y a plus de 11 ans
Roland Telle a écrit :
Galette v0.7.5dev.
Il semblerait que quelques \ aient échappé à la sagacité des chasseurs d'antislashes :-)
Dans Entity/Contribution.php, lignes 351 et 1146,
Dans Entity/Transaction.php, ligne 263
Bien vu, merci :)
Dans Repository/Groups.php, ligne 348, il y a un espace avant le \ (j'ignore si ça fâche ...)
Dans Reposiroty/Members.php, ligne 1398, même remarque
Non, c'est purement « esthétique » les espaces, le manque de consistance m'empêche juste de choper toutes les erreurs facilement :)
Dans install/index.php, lignes 423 et 1016
et aussi un peu partout dans les "includes" au point que je me demande si c'est dérangeant ? ;-)
Ça l'est, mais pas là :p
C'est une histoire d'espace de noms. Lorsqu'un espace de noms est défini, il sera utilisé dans le fichier qui le déclare, et les objets par défaut (tels que Exception
, DateTime
etc) devront être appelés d'une manière qui spécifie leur espace de noms.
En gros, si un fichier comporte l'instruction namespace
, il faut le \
sur Exception
et consorts.
Exemple :
<?php
namespace Galette\Mon\Esapce\De\Noms
throw new Exception('Une exception bidon');
Ce code ne fonctionnera pas, car on essaie ici de charger un objet qui s'appelle en réalité Galette\Mon\Esapce\De\Noms\Exception
(un objet Exception
dans l'espace de noms Galette\Mon\Esapce\De\Noms
). En remplaçant Exception
par \Exception
, on va charger un objet nommé Exception
dans un espace de noms vide, on obtient donc ce que l'on souhaite.
De la même façon, si l'on cherche à instancier l'objet Adherent
de Galette, il faut soit utiliser new Galette\Entity\Adherent()
, soit utiliser préalablement l'instruction use Galette\Entity\Adherent
ou use Galette\Entity\Adherent as Toto
(dans le dernier cas, on utilisera new Toto()
et non pas new Adherent()
!)
En espérant que cette explication éclaire quelque peu ta lanterne :)
Dans Galette, des espaces de noms sont définis dans chaque objet contenu dans le dossier lib
uniquement.