Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] commande pour créer un fichier DAO

Posted by isdream on 01/24/2007 10:45

Bonjour tout le monde,

Je vais essayer d'être le plus complet et clair possible.

Problème : J'ai rencontré un problème concernant la création d'un premier fichier DAO en ligne de commande.

Contexte :

  • table "news" dans la base de données
  • module "projets"

Ligne de commande :

 php jelix.php createdao projets test news

Résultat : Aucun message d'erreur dans la fenêtre de ligne de commande et aucun fichier créé.

Moyen de détection de l'erreur et remarque supplémentaire :

En utilisant l'option empty suivant,

  php jelix.php createdao -empty projets test news

un fichier de type "vide" est bien créé dans le répertoire daos de mon module.

En créant manuellement mon fichier dao, le module fonctionne correctement et mon module affiche les éléments de la base de données via mon template.

Tentative de debuguage (qui n'a peut être rien à voir avec l'erreur qui me concerne) : En mettant en commentaire les lignes du fichier "createdao.cmd.php" suivante,

 //$tools = jDb::getTools($profil);
 //$fields = $tools->getFieldList($this->_parameters\['table'\]);

un fichier vide est créer dans le répertoire daos et un message d'erreur surgit dans la fenêtre de ligne de commande. (normal, il ne trouve pas la méthode getFieldList).

J'ai donc tenter la ligne de commande avec l'option -profil mais sans succès.

Je trouvais cette ligne de commande très pratique car j'utilise une base de données contenant de nombreuses tables.

Pour faire une comparaison avec le framework Copix, je gagnerai un temps considérable en utilisant le framework Jelix et cette commande de création de fichier DAO. :)

Dans le forum je n'ai pas lu de message faisant référence à cette erreur. Ayant suivi le tutoriel à la lettre je me demande ou est ce que j'ai pu faire une erreur.

Cordialement, un nouvel utilisateur Jelix, ex-copix.

PS : Bravo pour ce framework qui est très clair dans sa structure pour les fonctionnalités qu'il propose. Je test encore ses fonctionnalités.

  [Opened] Re: commande pour créer un fichier DAO

Reply #1 Posted by laurentj on 01/24/2007 17:58

Salut,

tout d'abord, bienvenue à toi et merci pour tes retours sur le framework :-)

Bon, qu'il n'y ait pas d'affichage d'erreur, ce n'est effectivement pas normal. Voyons d'où ça peut venir

  1. voyant que tu n'a pas spécifié le nom de l'application dans la commande, l'as tu bien spécifié dans une variable d'environnement JELIX_APP_NAME ? (fait un php jelix.php help pour l'aide)
  2. as tu bien rempli le fichier var/config/dbprofils.ini.php pour les paramètres de connexion à ta base ?
  3. quelle version de jelix ? de php ? de ta base ? connection pdo ou jdb ? sous windows ? linux ?

hier encore, j'ai utilisé createdao et ça fonctionnait.

Si tu trouves l'erreur, signale là car, même si c'est une erreur de ta part, il y a au moins un bug : il manque un message d'erreur quelque part.

a+

  [Opened] Re: commande pour créer un fichier DAO

Reply #2 Posted by isdream on 01/25/2007 10:52

1. J'ai effectivement renseigné JELIX_APP_NAME avec set JELIX_APP_NAME mon_application.

Remarque : Avec l'option -empty le fichier DAO est bien créé.

Donc c'est bien au moment où la commande passe dans la boucle else du fichier "createdao.cmd.php" que la commande bloque.

En effet, si je commente "//$tools = jDb::getTools($profil);" et "//$fields = $tools->getFieldList($this->_parameters'table');";

il y a un message d'erreur sinon il n'y a aucun message d'erreur.

2. var/config/dbprofils.ini.php est bien rempli, suivant :

 default =mon_application
 \[mon_application\]
 driver="mysql"
 database="mabase"  
 host= "localhost"
 user= "root"   
 password=
 persistent= on

Remarque : En créant manuellement mon fichier dao, le module fonctionne correctement

et mon module affiche les éléments de la base de données via mon template. Donc la connection avec la base de données se fait bien.

3.version de jelix :

  • Edition Developer : jelix-1.0b1-dev.tar.gz
  • utilisation de WAMP5 PHP5-Apache 2- MySQL5 Version 1.6.4 - english version : PHPmyadmin 2.8.1 PHP 5.1.4 Apache/2.0.58 (Win32)
  • connection jdb (au vu de mon fichier var/config/dbprofils.ini.php)
  • windows XP pro SP2.

Je vais tout réinstaller d'ici ce midi et je confirmerai ou non cette erreur,

j'ai peut être touché là où il ne fallait pas ;)

[Je viens de réinstaller l'ensemble et j'ai toujours ce problème de création sans message d'erreur\]

isdream.

  [Opened] Re: commande pour créer un fichier DAO

Reply #3 Posted by isdream on 01/25/2007 11:11

Deux détail qui n'en sont peut être pas :

premier détail :

Pour pouvoir utiliser PHP-CLI, j'ai du transférer les fichiers contenus dans "wamp\php" suivant : php5ts.dll et php.exe (remarque : dans ce même répertoire il y a php-cgi.exe et php-win.exe que je n'ai pas bougé)

transféré dans le répertoire :

  "wamp\\www\\jelix-1.0b1-dev\\lib\\jelix-scripts"

Ensuite, j'utilise Invite de commandes windows pour le createdao. Je ne pense pas que le problème vienne de là car les autres commandes fonctionne correctement (y compris createdao avec l'option -empty)

deuxième détail

Dans le fichier dbprofils.ini.php le nom de profil et de database sont identique.

isdream.

Note : Sur la page : http://jelix.org/articles/tutoriel/config-base

Il y a marqué : Vérifiez dans le fichier actu.org/var/config/index/config.ini.php, que le paramètre dbprofil indique bien le fichier dbprofils.ini.php.

 dbProfils = dbprofils.ini.php

En fait je n'ai pas modifié ce fichier car je n'ai pas trouvé de section correspondante (est ce une erreur?). j'ai vérifié le fichier suivant à la place et la ligne y est bien :

 actu.org/var/config/defaultconfig.ini.php

  [Opened] Re: commande pour créer un fichier DAO

Reply #4 Posted by arnaudj on 02/02/2007 16:44

Bonjour !

Bien qu'étant sous Linux (Ubuntu 6.10, avec apache2 et PHP5), je rencontre le même problème : aucun message d'erreur n'apparaît, et aucun fichier DAO n'est généré...

Je ne pense pourtant pas avoir réalisé une manipulation trop originale : j'ai téléchargé la 1.0 beta 1, j'ai suivi le guide d'installation, et je tente de créer mes fichiers en respectant les instructions du tutoriel.

Quelle pourrait-être la raison de ce problème ? Je reste diponible pour fournir plus de renseignements si c'est nécessaire.


Arnaud

  [Opened] Re: commande pour créer un fichier DAO

Reply #5 Posted by arnaudj on 02/04/2007 14:08

J'ai testé aujourd'hui avec une nightly tout fraîche, je peux confirmer que le bug est réparé.

Cas 1 : si l'extension mysql n'est pas installée, cette exception est maintenant levée :

 Fatal error: Uncaught jDb : l'extension mysql n'est pas installée dans php pour le driver jDb configuré
 thrown in /home/arnaud/public_html/lib/jelix/db/drivers/mysql/jDbConnection.mysql.class.php on line 30

Cas 2 : si l'extension mysql est correctement installée (la ligne extension=mysql.so est décommentée dans /etc/php5/cli/php.ini), tout fonctionne parfaitement, le fichier DAO est créé !

Merci et bravo pour la rapidité de diagnostic et de correction de ce bug ! :-)


Arnaud

  [Opened] Re: commande pour créer un fichier DAO

Reply #6 Posted by isdream on 02/05/2007 16:54

En effet le problème est résolu pour moi aussi, c'est une résolution qui m'arrange bien. Je vais gagner du temps pour faire mes DAO !

Merci Laurent et Arnaud car sans ton problème sous Linux la source du problème aurait sans doute été plus dur à détecter.

Je vais maintenant essayer d'utiliser les droits et la nouvelle version nighty de Jelix (sous windows je ne sais pas encore si c'est possible d'installer la version nighty). isdream.

 
Page
  1. Re: commande pour créer un fichier DAO