[Catalyst] some basic Catalyst theory questions

Perrin Harkins perrin at elem.com
Mon Jun 6 22:16:20 CEST 2005

Hello Catalyst crew,

I'm working on my presentation about MVC frameworks for YAPC, and I have
some questions about the theory behind some of the design decisions in

- What's the reasoning behind the use for $c->forward() everywhere in
place of normal method calls?  The only clear advantage I can see is
that the context object is passed along automatically.  Is there another

- The examples show machine-specific configuration like database
connection params and file paths being specified in the code itself.
That would be a big portability problem, if you have to modify the code
on every new machine.  Is there a plan for Catalyst to help people with
putting this kind of stuff in a config file?  (Note that I am not
talking about things like database table relationships, just the pure
config stuff that is likely different on every installation of the same

- In a similar vein, defining URLs directly in the code seems less
flexible than doing it somewhere else, and makes Catalyst apps hard to
relocate.  (Although of course mod_rewrite solves any URL problem.)  Is
there any alternate way of defining URL to method mappings?

- Does all of this URL stuff work with the CGI engine?  I can imagine
ways it might work using PATH_INFO, but the docs on how to configure a
web server to use the different engines seem pretty slim.  Maybe I'm
looking in the wrong place.

- None of the intro docs show any use of query args ( $c->req()->params
() ) at all, and at first I wasn't sure it was even supported.  Is this
an intentional thing, to encourage people to use other approaches, or is
it just that URLs like /action27/thing13/ are more fun to write about?

Thanks for your help with this.  I will probably have more questions
later, but that should do it for now.

- Perrin

More information about the Catalyst mailing list