On 2003-10-20, Christopher Hicks <[EMAIL PROTECTED]> wrote: > > The DBI::DBD model I was referring to was the fact that DBI.pm can > discover all of the DBD's installed by the way they have things setup. > It's painless to use - one "use DBI" line and everything else it finds for > itself. One of the nice things about cgiapp (or your own personal > inheritance of it) is that you don't have to "use" tons of different > modules. Since the plugin architecture described was based on adding > "use" lines for every plugin my gut reaction was that in some sense it was > going backwards.
Chris, My sense with DBD::Pg was that the module discovery was somewhat explicit. I include "Pg" in the connect string, which causes DBI to load DBD::Pg, correct? To me, remembering to include "Pg" in the connect string seems to be about the same amount difficulty as adding "use DBD::Pg" in a script. There may also be more going on with DBI plug-in architecture that I don't understand. (I contribute to the DBD::Pg module, but I admit to not having a full understanding of how the "big picture" is working.) At other points in my career, I have set things up so I had a lot of functionality available, and I could call routines and things "just worked". (ie: I 'used' a lot of modules that imported a lot of functions into my name space). At the extreme, I found it confusing because I would lose track of what was available and forget which functions were stored where. Now I'm more explicit about putting in "use" or "require" statements more frequently-- and closer to where they are actually used. This explicitness makes it easier to see how things are connected and track down bugs. With ValidateRM, yes you have to "use" it in the code, but it's an alternative to adding "use" lines for HTML::FillInForm and Data::FormValidator, so there is a little syntactic savings there. So while I like the idea of of a simple "plug and play" architecture for CGI::App, I also don't mind being a little explicit if needed, if that adds clarity. I'm also not sure I fully understand your proposal yet. Can you offer a code sample as example, or you are still working at the conceptual, theoretical level with the idea? I agree that you are right that a lot of CGI::App plugins will offer the same or similar interfaces-- such as working with templates. Mark -- . . . . . . . . . . . . . . . . . . . . . . . . . . . Mark Stosberg Principal Developer [EMAIL PROTECTED] Summersault, LLC 765-939-9301 ext 202 database driven websites . . . . . http://www.summersault.com/ . . . . . . . . --------------------------------------------------------------------- Web Archive: http://www.mail-archive.com/[EMAIL PROTECTED]/ http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2 To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]