plugins; was Re: [Catalyst] debug mode

mreece at vinq.com mreece at vinq.com
Tue Jun 5 16:04:03 GMT 2007


if the catalyst base controller class provided an easy way to access $c
from a utility method (vs an action method, which receives $c
'automatically'), then i think plugins might be a little less popular.

some of my bits have ended up as controllers because i'd rather

  $c->twiddle_with_session();

than

  $self->twiddle_with_session($c);

session is just an example here, it could need something from $c->config,
$c->request..  it doesn't strike me as particularly wrong for the methods
to live on $c when they will primarily only be calling other methods on
$c.


still, depending on frame of reference, i've moved/developed some things
to/as base controllers, and it has helped to have something like this in
my Base::Controller, but maybe it should come for free?

  __PACKAGE__->mk_accessors('_context');

  sub _ACTION : Pricvate {
    my ($self, $c) = @_;
    $self->_context($c);
    $self->SUPER::_ACTION($c);
  }


> On Tue, Jun 05, 2007 at 08:40:52AM -0400, Matthew Pitts wrote:
>> On Tue, 2007-06-05 at 01:18 +0100, Matt S Trout wrote:
>> > On Mon, Jun 04, 2007 at 12:55:38PM -0700, Dylan Vanderhoof wrote:
>> > > Oh, missed this email.  Yours looks better than mine.  =)
>> >
>> > Except for being a performance hit on every single method call on $c
>> (there's
>> > a reason I keep telling people not to make everything a plugin ...).
>>
>> Am I correct in saying that the NEXT overhead is proportional to the
>> number of packages in the ISA chain and not the number of methods the
>> plugins override? If so, then if I were to bring all my plugins into one
>> big "framework" plugin would that improve the NEXT performance?
>
> Or you could avoid making them plugins. 9 times out of 10 they should've
> been a model, a controller base class or an external utility module - see
> the ExtendingCatalyst POD for more info.
>
> --
>       Matt S Trout       Need help with your Catalyst or DBIx::Class




More information about the Catalyst mailing list