MVCR pattern (was Re: [Catalyst] Bing!)
Adam Jacob
adam at stalecoffee.org
Thu Aug 11 18:59:01 CEST 2005
On Aug 11, 2005, at 8:36 AM, David Storrs wrote:
>
> - Your exampe talks about putting all the code into separate
> modules that are in no way attached to the web app. The web app
> would then provide an interface to these modules.
>
> - In a previous email, I agreed with you that this was the right
> thing to do. I said then, and I will say again now: It is the
> right thing to do. It is also not relevant to what I'm asking. My
> question is /which component/ of the the web app should be
> responsible for providing that interface to your external modules?
> Should it be the Controller? Should it be the Model? Should it be
> a special-purpose Action class that is not part of the canonical
> MVC pattern? Should it be some blurring of the above?
I would see this as being in the Model. If I want to react to some
event, passing user input/output to/from some external thing ("create
crontab", "delete crontab", "add user data to database") I want that
logic to be encapsulated in a Model, so that my Controller can ignore
the details.
Now, assuming I have a non-catalyst set of libraries called Foo.pm,
and I want to use the functionality in Foo from Cat::C::Whatever, one
could argue that calling Foo directly from the Controller amounts to
about the same thing as passing things through a small Model class
that handles just the methods you desire.
Hrm.. now that I'm writing it, things do get sticky. :)
Adam
More information about the Catalyst
mailing list