package Catalyst::Model::Factory::PerRequest; use strict; use warnings; use base 'Catalyst::Model::Factory'; our $VERSION = '0.03'; sub ACCEPT_CONTEXT { my ($self, $context) = @_; my $id = '__'. ref $self; $context->stash->{$id} ||= $self->_create_instance($context); return $context->stash->{$id}; } 1; __END__ =head1 NAME Catalyst::Model::Factory::PerRequest - use a plain class as a Catalyst model, instantiating it once per Catalyst request =head1 SYNOPSIS This module works just like L, except that a fresh instance of your adapted class is once per Catalyst request, not every time you ask for the object via C<< $c->model >>. =head1 CUSTOMIZING You can customize your subclass just like L. Instead of C<$app>, though, you'll get C<$c>, the current request context. =head1 METHODS These methods are called by Catalyst, not by you: =head2 COMPONENT Load your class =head2 ACCEPT_CONTEXT Create an instance of your class and return it. =head1 SEE ALSO For all the critical documentation, see L.