Sujet : hoa main:tree marche pô...

Bonsoir bonsoir,

Dans l'optique de voir si je n'ai pas loupé quelque chose dans le quick start, je me suis mis en tête de le re-faire pas à pas...
Et paf je tombe sur une erreur dès le début sad

user@laptop:~/Developpement/tests_hoa1/Central$ ./Data/Bin/hoa application:start
Creating the skeleton of our application.
  * Create hoa://Application/Public.                                       [ok]
  * Create hoa://Application/Public/index.php.                             [ok]
user@laptop:~/Developpement/tests_hoa1/Central$ ./Data/Bin/hoa  tree Application/
Application/
PHP Fatal error:  Class 'Hoa\File\Generic' not found in /home/user/Developpement/tests_hoa1/Central/Framework/Library/File/Directory.php on line 85
PHP Stack trace:
PHP   1. {main}() /home/user/Developpement/tests_hoa1/Central/Data/Bin/hoa:0
PHP   2. require_once() /home/user/Developpement/tests_hoa1/Central/Data/Bin/hoa:44
PHP   3. Hoa\Console\Console->dispatch() /home/user/Developpement/tests_hoa1/Central/Data/Bin/Hoa.php:68
PHP   4. Hoa\Console\Dispatcher->dispatch() /home/user/Developpement/tests_hoa1/Central/Framework/Library/Console/Console.php:256
PHP   5. TreeCommand->main() /home/user/Developpement/tests_hoa1/Central/Framework/Library/Console/Dispatcher.php:192
PHP   6. Hoa\File\Finder->__construct() hoa://Data/Bin/Command/Main/Tree.php:214
PHP   7. Hoa\File\Finder->setIterator() /home/user/Developpement/tests_hoa1/Central/Framework/Library/File/Finder.php:276
PHP   8. Hoa\Core\Consistency\Consistency::autoload() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:0
PHP   9. require() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:435
PHP  10. Hoa\Core\Consistency\Consistency::autoload() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:0
PHP  11. require() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:435
PHP  12. Hoa\Core\Consistency\Consistency->import() /home/user/Developpement/tests_hoa1/Central/Framework/Library/File/Generic.php:69
PHP  13. class_exists() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:156
PHP  14. Hoa\Core\Consistency\Consistency::autoload() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:0
PHP  15. require() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:435

Du coup ça ne devrait pas me gêner pour la suite (du moins je l'espère)...
Mais ça fait un peu tâche wink

Sur ce, j'y retourne!

Re : hoa main:tree marche pô...

J'ajoute une seconde erreur, qui semble avoir la même origine...
bhoa ne fonctionne pas:

user@user-laptop:~/Developpement/tests_hoa1/Central$ Data/Bin/hoa bhoa
Server is up, on tcp://localhost:8888!
Root: /home/user/Developpement/tests_hoa1/Central.

Waiting for connection… string(159) "GET /gordon HTTP/1.1
User-Agent: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
Host: localhost:8888
Accept: */*

"
                         
? GET /gordon (waiting…) PHP Fatal error:  Class 'Hoa\File\Generic' not found in /home/user/Developpement/tests_hoa1/Central/Framework/Library/File/Directory.php on line 85
PHP Stack trace:
PHP   1. {main}() /home/user/Developpement/tests_hoa1/Central/Data/Bin/hoa:0
PHP   2. require_once() /home/user/Developpement/tests_hoa1/Central/Data/Bin/hoa:44
PHP   3. Hoa\Console\Console->dispatch() /home/user/Developpement/tests_hoa1/Central/Data/Bin/Hoa.php:68
PHP   4. Hoa\Console\Dispatcher->dispatch() /home/user/Developpement/tests_hoa1/Central/Framework/Library/Console/Console.php:256
PHP   5. BhoaCommand->main() /home/user/Developpement/tests_hoa1/Central/Framework/Library/Console/Dispatcher.php:192
PHP   6. Hoa\Core\Consistency\Consistency::autoload() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:0
PHP   7. require() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:435
PHP   8. Hoa\Core\Consistency\Consistency::autoload() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:0
PHP   9. require() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:435
PHP  10. Hoa\Core\Consistency\Consistency->import() /home/user/Developpement/tests_hoa1/Central/Framework/Library/File/Generic.php:69
PHP  11. class_exists() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:156
PHP  12. Hoa\Core\Consistency\Consistency::autoload() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:0
PHP  13. require() /home/user/Developpement/tests_hoa1/Central/Framework/Core/Consistency.php:435

3

Re : hoa main:tree marche pô...

Aïe. C'est mon commit d'hier. Je regarde ça rapidement.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

4

Re : hoa main:tree marche pô...

J'ai trouvé le bug, dans Framework/Core/Consistency.php C'est class_exists qui exécute mon autoload (je ne sais pas pourquoi …) et ça fout le bazard. Je vais essayer de corriger ça.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

5

Re : hoa main:tree marche pô...

Ok, bug corrigé. C'était assez violent à détecter. Heureusement, Hoa\Core\Consistency m'a encore sauvé la vie (j'ai bien fait de l'écrire cette classe tongue).

Le problème était le suivant. Pour éviter des imports massifs de classes, on a plusieurs mécanismes de caches, dont vérifier que la classe n'existe pas déjà (naïvement, i.e. sans dérouler d'algorithme pour les chemins d'import : ~, * etc.). Sauf que class_exists() invoque par défaut l'autoload. Du coup, l'autoload est mis en échec et les importations ne se faisaient pas bien (on a des références pour économiser la mémoire, je pense que ça vient de là, ça pourrait se corrompre j'imagine). Le problème est résolu avec ce patch : http://hg.hoa-project.net/Central/rev/81c29717d7f8.

Tout bête au final, mais fallait trouver !
Désolé pour l'embêtement et merci pour le bug !

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : hoa main:tree marche pô...

Pas de problèmes wink

Sur ce je fait une pause d'une semaine de vacances loin d'internet!
J'espère pouvoir revenir à fond les ballons sur une doc Xyl plus poussée? tongue

Allez zou bonne suite!

7

Re : hoa main:tree marche pô...

Je vais essayer. Promis smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »