Catalyst-View-BasePerRequest
view release on metacpan or search on metacpan
README.mkdn view on Meta::CPAN
In a classic [Catalyst](https://metacpan.org/pod/Catalyst) application with server side templates, the canonical approach
is to use a 'view' as a sort of handler for an underlying template system (such as
[Template::Toolkit](https://metacpan.org/pod/Template%3A%3AToolkit) or [Xslate](https://metacpan.org/pod/Xslate)) and to send data to this template by populating
the stash. These views are very lean, and in general don't provide much in the way
of view logic processing; they generally are just a thin proxy for the underlying
templating system.
This approach has the upside of being very simple to understand and in general works
ok with a simple websites. There are however downsides as your site becomes more
complex. First of all the stash as a means to pass data from the Controller to the
template can be fragile. For example just making a simple typo in the stash key
can break your templates in ways that might not be easy to figure out. Also your
template can't enforce its requirements very easily (and it's not easy for someone
working in the controller to know exactly what things need to go into the stash in
order for the template to function as desired.) The view itself has no way of
providing view / display oriented logic; generally that logic ends up creeping back up
into the controller in ways that break the notion of MVC's separation of concerns.
Lastly the controller doesn't have a defined API with the view. All it can ask the view
is 'go ahead and process yourself using the current context' and all it gets back from
the view is a string response. If the controller wishes to introspect this response
lib/Catalyst/View/BasePerRequest.pm view on Meta::CPAN
In a classic L<Catalyst> application with server side templates, the canonical approach
is to use a 'view' as a sort of handler for an underlying template system (such as
L<Template::Toolkit> or L<Xslate>) and to send data to this template by populating
the stash. These views are very lean, and in general don't provide much in the way
of view logic processing; they generally are just a thin proxy for the underlying
templating system.
This approach has the upside of being very simple to understand and in general works
ok with a simple websites. There are however downsides as your site becomes more
complex. First of all the stash as a means to pass data from the Controller to the
template can be fragile. For example just making a simple typo in the stash key
can break your templates in ways that might not be easy to figure out. Also your
template can't enforce its requirements very easily (and it's not easy for someone
working in the controller to know exactly what things need to go into the stash in
order for the template to function as desired.) The view itself has no way of
providing view / display oriented logic; generally that logic ends up creeping back up
into the controller in ways that break the notion of MVC's separation of concerns.
Lastly the controller doesn't have a defined API with the view. All it can ask the view
is 'go ahead and process yourself using the current context' and all it gets back from
the view is a string response. If the controller wishes to introspect this response
( run in 2.081 seconds using v1.01-cache-2.11-cpan-364913b4093 )