2009-11-24 10 views
2

Je travaille actuellement avec une base de code qui contient plusieurs dizaines de classes générées avec SOAP :: WSDL. Cependant, ayant travaillé avec Moose, je pense que générer ces classes à l'exécution au niveau méta (c'est-à-dire non pas sur des disques mais directement sur des objets) pourrait être une meilleure idée (excluant complètement les performances).L'implémentation de clients SOAP en Perl à l'aide de la méta-programmation est-elle judicieuse?

  1. Cette approche est-elle sensible? L'idée est d'éviter les modifications du code généré et aussi d'éviter de le générer de temps en temps.

  2. Si oui, existe-t-il des modules Perl prêts à l'emploi qui créent des classes à partir d'un WSDL?

Répondre

1

Pour répondre à la deuxième question, il n'y a rien Moose à base qui va transformer un WSDL dans un ensemble de classes. Cependant, vous pourriez éventuellement construire quelque chose basé sur XML :: Toolkit. Pour une divulgation complète, XML :: Toolkit est mon module qui a des outils pour convertir les flux SAX en classes Moose et vice versa. Pour les classes Perl non-Moose, il existe XML :: Compile qui, je crois, peut compiler SOAP wsdl -> Perl.

Pour répondre à la première question, mon expérience avec XML :: Toolkit indique qu'il est difficile de garder les classes en mémoire au moment de l'exécution. En ignorant les performances, il y a beaucoup de choses à garder dans votre tête qui sont gonflées du WSDL. Ce serait une expérience intéressante, mais je ne suis pas sûr à quel point il pourrait être maintenu à long terme

Je voulais depuis longtemps essayer quelque chose comme ça, mais je n'ai pas eu un projet qui m'a payé Malheureusement, je n'ai pas le temps de m'attaquer à un projet de cette taille non plus