Bonjour,
Je défini un Schema DBix avec plusieurs dizaines de tables, elles-même avec plusieurs dizaines de colonnes.
Afin de limiter les répétitions, je souhaiterai déclarer les colonnes identiques de chaque table (ex: id, name, description, etc.) dans un autre package et le faire hériter à chacun des ResultSource qui en aurait besoin.
Bref, un truc qui ressemble à extend() utilisé dans Moose (entre autre)...
J'ai tenter de la faire en utilisant les package standard Perl, extend() ou le __PACKAGE__->load_components de DBix::Class::Core, mais sans succès.
Malheureusement, faire des __PACKAGE__->add_columns avant des __PACKAGE__->table, ne plaît pas du tout à DBix (re :cru
Soit ça se fait trop tôt et DBix tousse, soit c'est complètement invalide.
En revanche j'ai testé avec plusieurs __PACKAGE__->add_columns dans un même ResultSource et ça lui convient bien.
Donc du coup je me dit que si je pouvais insérer autre package à un endroit stratégique, il y aurait moyen de faire fonctionner cela.
Mais je vois pas comment...
De plus je ne trouve aucune info sur Web sur ce type de besoin.
J'ai juste trouvé un truc approchant, mais cela créer deux tables jointes (ce n'est surtout pas ce qu'il faut).
Si vous avez des idées de solutions, je suis preneur.
Par avance, merci de votre contribution.
Partager