On 12/12/05, Michael Graham <[EMAIL PROTECTED]> wrote:
>
> > >   * Do something as Rob suggests with a pluggable dispatch architecture.
> > >     In this case CA::Dispatch would probably become
> > >     CA::Plugin::Dispatch, anyway.
> >
> > But C::A::D can't really be plugin since it sit's outside of C::A. 
> > Especially in
> > mod_perl where it becomes you PerlHandler. It doesn't add anything to C::A, 
> > it
> > just handles the mapping of URL to module/rm.
>
> Yeah, I know - but I gather Rob's got some ideas for making C::A's
> dispatch system pluggable, though.  I'm not sold on it, but it seems
> like it will be an interesting discussion.  I do like the idea of being
> able to use CA::Dispatch as a PerlTransHandler thought.

Here's the basic concept - CA defines the steps that need to be taken
(dispatch, CGI param parsing, runmode execution, error handling,
template processing, etc). But, it doesn't implement any code to do
those things. It has plugins to do all the things that need done. It
merely defines the interface and the order of operations. (And,
technically, even THAT should be in a plugin. But, that's getting a
little TOO meta for most needs.)

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.

mod_perl will still call CA->handle, just as it does right now. I'm
talking about the CA-internal cycle.

I haven't fleshed out all the details yet. For one thing, the last
time I did any serious looking at the internals was to add error_mode.
So, someone would need to document the complete response cycle and we,
as a group, would need to identify where we can say "THIS belongs to
this phase and THAT belongs to that phase."

Once that's done, the internals need to be ripped out and rewritten.
No new features, though. It is enough to pass the current testsuite.
Then, once that's done, dropping items in should be a breeze.

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