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.