developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 9 years ago

Closed 8 years ago

Last modified 7 years ago

#870 closed new feature (fixed)

Ajouter un script permettant de générer des objets à partir des DAO

Reported by: RomainB Owned by: RomainB
Priority: low Milestone: Jelix 1.2 beta
Component: jelix-scripts Version: 1.1.1
Severity: minor Keywords:
Cc: Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Description

Ajout d'une commande "createobjectfromdao" permettant de générer des objets à partir des fichiers xml des DAO.

Ces objets pourront servir par exemple à l'utilisation du pattern DTO. Ils seront généres dans le répertoire classes du module cible.

La commande prendra en argument :

  • le nom du DAO,
  • le nom de l'objet (qui sera également le nom de la classe et celui du fichier),
  • le nom du module cible.

Attachments (3)

createclassfromdao.patch (4.5 KB) - added by RomainB 9 years ago.
createclassfromdaov2.patch (5.0 KB) - added by RomainB 9 years ago.
createclassfromdaov3.patch (696 bytes) - added by geekbay 9 years ago.
patch sur la v2

Download all attachments as: .zip

Change History (15)

comment:1 Changed 9 years ago by RomainB

  • Documentation needed set
  • Status changed from new to assigned

La commande devrait plutôt se nommer "createclassfromdao". C'est plus juste du point de vue objet (puisqu'un objet est une instance de classe) et aussi plus clair pour l'utilisateur final car le fichier généré est bien une classe du point de vue Jelix.

Changed 9 years ago by RomainB

comment:2 Changed 9 years ago by RomainB

  • review set to review?

Ci-joint le patch correspondant.

Étant donné qu'il s'agit de ma première contribution, merci de bien vouloir être vigilant concernant le nommage entre autres. Je ne suis pas très sûr de certaines modification également. Fallait-il inclure au patch la modification du manifest, ai-je modifié le bon, ai-je choisi un nom correct pour le nouveau template ? Merci de bien vouloir m'indiquer ce qui reste à corriger le cas échéant.

comment:3 Changed 9 years ago by bballizlife

Le patch me semble correct mais je te demanderais quelques modifications.

  • j'aurais cependant renommé le template "generic" en quelque chose de plus précis, peut-être "classfromdao"
  • mets à jour le fichier CREDITS en t'y ajoutant

Sinon, j'avais peut-être mal compris où tu voulais en venir avec cette classe, mais elle ne fait que ça finalement ?

comment:4 Changed 9 years ago by RomainB

Bonjour,

Voici le patch v2

Oui ça ne fait "que ça". Je n'ai jamais dit que je voulais faire autre qu'un simple générateur de classes basiques. J'ai pris l'exemple du pattern DTO pour expliquer à quoi me serviraient ces classes c'est tout. Et quand j'ai voulu recentrer le sujet laurent s'est un peu enflammé :)

Encore une fois, merci d'être vigilant concernant le fichier manifest que j'ai changé. Je ne sais pas si c'est le bon ni s'il fallait en changer d'autres.

Changed 9 years ago by RomainB

comment:5 Changed 9 years ago by RomainB

Bonjour,

Erratum : il manque un paramètre à la commande qui génère le fichier. En fait il s'agit tout simplement de la variable de template %%name%% La dernière instruction doit être :

$this->createFile($targetClassPath,'classfromdao.class.tpl', array('properties'=>$classContent, 'name'=>$this->_parameters['classname']));

Je vous envoie le bon patch dès que possible (ce soir si j'ai 2 minutes)

comment:6 Changed 9 years ago by RomainB

  • Version changed from 1.1 to 1.1.1

comment:7 Changed 9 years ago by laurentj

  • Milestone set to Jelix 1.2
  • review changed from review? to review+

ça m'a l'air correct, bien que je ne vois toujours pas l'intérêt, vu qu'un record DAO contient exactement les mêmes propriétés que la classe générée ici :-)

comment:8 Changed 9 years ago by laurentj

  • Resolution set to fixed
  • Status changed from assigned to closed

Landed in the trunk. r1457.

Thanks for your patch.

comment:9 Changed 9 years ago by geekbay

  • Resolution fixed deleted
  • Status changed from closed to reopened

comme c'etais dit precedemment, ya une erreur a la ligne 86,

$this->createFile($targetClassPath,'classfromdao.class.tpl', array('properties'=>$classContent, 'name'=>$this->_parameters['classname']));

donc plutot qu'un nouveau ticket, je rajoute le patch

Changed 9 years ago by geekbay

patch sur la v2

comment:10 Changed 9 years ago by laurentj

j'ai ajouté le paramètre manquant.

http://hg.jelix.org/jelix/jelix-trunk/rev/79ec71d11076

comment:11 Changed 8 years ago by laurentj

  • Resolution set to fixed
  • Status changed from reopened to closed

comment:12 Changed 7 years ago by laurentj

  • Documentation needed unset
Note: See TracTickets for help on using tickets.