roman has asked for the wisdom of the Perl Monks concerning the following question:
Do you think it is sane to store and use Catalyst application class in controller (in Moose attribute)? I can use the property to link to other application components "statically" without using $c and also store them in attributes.
I mean something like this:
package MyApp::Controller::Region; use Moose; BEGIN { extends qw(Catalyst::Controller); } has app_class => ( is => 'ro' ); has regions => ( is => 'ro', required => 1, lazy => 1, isa => 'ArrayRef', auto_deref => 1, default => sub { # using model and storing bit of data in attributes return [ shift()->region_rs->all ]; } ); # remembering app_class around BUILDARGS => sub { my $next = shift; return { %{ $next->(@_) }, app_class => $_[1], }; }; sub region_rs { # accessing the model return shift()->app_class->model('DB::Region'); }
Do you see any potential danger in this?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Using Catalyst application class in controllers
by Anonymous Monk on Oct 13, 2011 at 12:28 UTC | |
by roman (Monk) on Oct 13, 2011 at 13:30 UTC |