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?

You are not limited by the number of models. You can write a model which does the form/data validation and which calls the dbic model to insert the data. Just place an extra layer between your controller and your dbic model.

* 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?

I would write an extra model for this or you create a resultset class which can handle that. This very much depends on the data which is needed.

* 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?

I use Template::Plugin::Latex to create a TeX document which is then converted to a pdf. But this is totally independent from catalyst. It is a script which is run once a day and generates the invoices. No need to follow the MVC scheme here.

If you plan to run those jobs with catalyst I'll suggest you have a look a job queue which can help you with that (e.g. TheSchwartz).


moritz

_______________________________________________
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