Hi,

this is an interesting topic. I'm also one of that guys that put business logic into the controllers, but I never released any project yet, so it's my "test Catalyst" period and I'm still learning :) (and I never used MVC before).

I had that problem to use data of the db outside of the web app from a perl script. What I have done so far is to use Catalyst::Plugin::CommandLine and accessed the model (that contains no business logic, the scripts actions differ from those of the web app). That was fine for me in that situation.

Now, if I want to use business logic - which is implemented in Catalyst - in my script, I would get stuck. Where should I place the business logic that I want to use on both ends? In the controller actions? No way, I don't want to call the action that is called though the web browser - because I might have some more logic that should be executed only when coming over the web. (I asked a similar question to me very often yet: where to put business logic that is used by controller action A *and* B?)

There may be the possibility to add a new function to the namespace of one of the Controllers, but that sounds ugly to me.

So it's the model I put the business logic in? That sounds ok, for now. But what about this: * Input from the web has to be validated. May be I use Data::FormValidator, may be FormFu. However, I may have to validate the params I get from the script (eg. data import from ERP systems), too. Do I have to implement the validation again? And maybe normalization/converting, too? Or where would you place these functionality? Extra modules? * What about business logic that is in not only bound to a specific schema but has an overall logic that fetches data from different tables, adds some somewhere and produces results? How would you implement such a logic? Any examples? * An example for using data and logic outside of the web app would be generating invoices by night. That process would bring out some PDFs which will be printed or sent by mail through another script. Shouldn't a view be involved in this process that builds the PDFs from templates? Is it possible to build this example upon a Catalyst web app? Examples?

Thanks for listening, looking forward to the answers...

Matt

--
rainboxx Matthias Dietrich
Freier Software Engineer

rainboxx                  |  Tel.: +49 (0) 151 / 50 60 78 64
Tölzer Str. 19            |  Mail: [email protected]
70372 Stuttgart           |  WWW : http://www.rainboxx.de

XING: https://www.xing.com/profile/Matthias_Dietrich18
GULP: http://www.gulp.de/profil/rainboxx.html

Attachment: PGP.sig
Description: Signierter Teil der Nachricht

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to