[Catalyst] Anyone with PHP / Smarty Background

Brian catalyst at gzmarketing.com
Fri Dec 29 06:16:34 GMT 2006

Thank you!

That is exactly the information and head start I was after.

Now I have to name my first born son Christopher.  3 daughters so far, 
so you may have to settle for Christina.

Thanks again,

Christopher Heschong wrote:
> Yep.  The one thing that confused me and has confused every new 
> developer on my team is the "View" in Catalyst's 
> Model/View/Controller.  They always expect that's where they'll 
> generate the HTML or whatever, ala PHP.  This isn't exactly the case.  
> 99% of the time you'll have Catalyst create a Template Toolkit view 
> for you, which will basically be empty.  That's the only code 
> (usually) that will go in your Yourapp/lib/Yourapp/View/ directory.  
> What you're likely to  expect the "View" part to be is really the 
> template files you put in the Yourapp/root/ directory, and that's not 
> always clear at the start.  These template files are to some extent 
> the "View", but they don't sit in the View directory.  Getting a good 
> grasp of the MVC structure of Catalyst is key.
> Basically most of the actual perl code you write won't display 
> anything, it will just set variables in the stash, and your template 
> files (in root) will display those variables.
> The Intro in the Catalyst manual is pretty good:
> http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Intro.pod
> Tons of info on the Catalyst Wiki (some of it out of date):
> http://dev.catalystframework.org/wiki
> Tons of example code here:
> http://dev.catalystframework.org/browser/trunk/examples
> Another handy example:
> http://www.herlpacker.co.uk/tech/development/projects/parley/
> And this is fun:
> http://search.cpan.org/search?m=all&q=Catalyst+Plugin 
> <http://search.cpan.org/search?m=all&q=Catalyst+Plugin>
> When I was learning TT, it took me a while to realize that the docs 
> weren't in the Template pod, it was in the Template::Manual::* pod docs:
> http://search.cpan.org/dist/Template-Toolkit/lib/Template/Manual/Intro.pod
> http://search.cpan.org/dist/Template-Toolkit/lib/Template/Manual/Syntax.pod
> For PHP-style parameter arrays, take a look at 
> Catalyst::Plugin::Params::Nested:
> <input name="search[name]" />
> <input name="search[address]" />
> turn into a hashref you can pass around, or access directly:
> my $foo = $c->req->param('search');
> $foo->{name};
> $foo->{address};
> This is really nice when you want to do something like this:
> sub search : Local {
> my ($self, $c) = @_;
> $c->stash->{results} = $c->model('Something')->search(
> $c->req->param('search')
> );
> }
> which will basically connect to the database, do a "SELECT * FROM 
> some_table WHERE name = '<form input>'  AND address = '<form input>'", 
> grab the results, stick them in the stash, and then it's off to your 
> template (named search.tt by default since the sub is called "search") 
> to display.  Of course, in the real world you probably want to check 
> the input a little more stringently, but DBIx::Class does prevent 
> quite a few SQL-injection type attacks by using something called 
> binding... anyway, I'm getting off the subject.
> Hope that helps you get started.

More information about the Catalyst mailing list