Anomalie #4605
ferméL'Autoloader ne gére pas les Traits.
100%
Ajouter un test pour le define (cas PHP 5.3)
if (! defined("T_TRAIT")) define("T_TRAIT", 355);
Puis ajouter le test sur le token : méthode ClassHunterForPHP5_3::find()if ($token[0] === T_INTERFACE || $token[0] === T_CLASS || $token[0] === T_TRAIT) {
Description
Lorsqu'on utilise un trait, nous obtenons l'erreur suivante par exemple :
PHP Fatal error: Trait 'GPersonnels\Family\WF\Demande\Type\RenouvellementPeriodeProbatoire' not found in /var/www/dynacase/lagon/LAGON_GPERSONNELS/Families/DEMANDE_RENOUVELLEMENT_PERIODE_PROBATOIRE_VS_WF_CLASS.php on line 14
PHP Stack trace:
PHP 1. {main}() /var/www/dynacase/lagon/wsh.php:0
PHP 2. include() /var/www/dynacase/lagon/wsh.php:136
PHP 3. ImportDocument->importDocuments() /var/www/dynacase/lagon/API/importDocuments.php:150
PHP 4. ImportDocument->importSingleFile() /var/www/dynacase/lagon/FDL/Class.importDocument.php:132
PHP 5. importDocumentDescription->import() /var/www/dynacase/lagon/FDL/Class.importDocument.php:153
PHP 6. importDocumentDescription->doClass() /var/www/dynacase/lagon/FDL/Class.ImportDescription.php:379
PHP 7. CheckClass->check() /var/www/dynacase/lagon/FDL/Class.ImportDescription.php:1081
PHP 8. CheckClass->checkInherit() /var/www/dynacase/lagon/FDL/CheckClass.php:35
PHP 9. ReflectionClass->__construct() /var/www/dynacase/lagon/FDL/CheckClass.php:85
PHP 10. Dcp\DirectoriesAutoloader->autoload() /var/www/dynacase/lagon/FDL/CheckClass.php:0
PHP 11. Dcp\DirectoriesAutoloader->_loadClass() /var/www/dynacase/lagon/WHAT/classAutoloader.php:362
PHP 12. require_once() /var/www/dynacase/lagon/WHAT/classAutoloader.php:530
Si on modifie la ligne 86 du fichier classAutoloader.php
if ($token[0] === T_INTERFACE || $token[0] === T_CLASS) {
en
if ($token[0] === T_INTERFACE || $token[0] === T_CLASS || $token[0] === T_TRAIT) {
cela fonctionne.
Mis à jour par Matthieu Codron il y a environ 12 ans
Note: si on veut être compatible avec php 5.3, il faudrait plutôt écrire quelquechose comme
if ($token[0] === T_INTERFACE || $token[0] === T_CLASS || (defined(T_TRAIT) && $token[0] === T_TRAIT)) {
Mis à jour par Marc Claverie il y a environ 12 ans
- Tracker changé de Feature à Anomalie
- Projet changé de Platform à Core
- Statut changé de Nouveau à À analyser
- Assigné à mis à Éric Brison
- Version cible mis à 3.2.14
- Thème Socle technique ajouté
Mis à jour par Éric Brison il y a environ 12 ans
- Statut changé de À analyser à Analysé
- Temps estimé mis à 1:00 h
- Solution proposée mis à jour (diff)
Mis à jour par Éric Brison il y a environ 12 ans
- Statut changé de Analysé à Intégré
- % réalisé changé de 0 à 100
- Temps estimé
1:00 hsupprimé
Appliqué par commit dynacase-core|commit:6771e94b55903f7a351a14630784b93b29662843.