On 12/12/05, Michael Graham <[EMAIL PROTECTED]> wrote:
>
> > So, essentially, CA does the following upon being used:
> > 1) Load all the plugins requested. Each plugin will register as being
> > used for a specific purpose (which could be "I add methods").
> > 2) Verify that all required steps (such as dispatching) have a plugin
> > loaded or load the default one.
>
> I find this interesting in an academic sense, and I'd like to see these
> ideas fleshed out further.  At the moment my immediate questions are:
>
>    * Will this lead to more fragmentation of styles or greater
>      standardization?

The question doesn't make sense because it doesn't matter. The point
is that, just as Apache2 defined the 18 steps it takes in generating a
response to a request, CA should define the N steps it takes to do its
thing. Whether you choose to do the simple thing, the complicated
thing, or the thing CA4 does ... that's your business. I see this as
the true tinkertoy approach that CA initially held out to me.

>    * Are there there specific things that are hard to do now that should
>      be easier, or is this more of a conceptual cleanup?

This idea sprung out of the routes/dispatch discussion. If this were
in place, the discussion wouldn't include "How do we hook this in?"
Also, this would make a lot of plugins easier to write. For example,
CAP::TT would use the exact same syntax as CAP::HT (which would be the
default).

>    * How do subclasses work?  When you've discovered which module is
>      going to handle a request, do you 'rebless' the current running
>      application into that module's namespace?  Or does the dispatch
>      stuff happen at the class level before the app is run?

Well, it currently happens in the run() method in CGI/Application.pm.
I don't see any reason why the proposed steps-to-run would require any
change other than where the code the fulfills that step lives.

> One thing I can imagine might be possible with a system like this is
> being able to do initialization (db, config, log, etc.) before dispatch.
>
> For instance, at the moment it's hard to read your dispatch table from a
> config file, because configuration isn't initialized until runtime.

Since the code that fulfills each step can live wherever you want it
to, that's perfect. :-)

Rob

---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/cgiapp@lists.erlbaum.net/
              http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to