Stefan Kühn wrote:
> I would like to provide functionality to multiple controllers. 

Base classes.  Common code goes in a base class:

    package YourApp::BaseController::Foo;
    use base 'Catalyst::Controller';

    sub some_method {}
    sub some_action :Attributes Are OK {}

    1;

Then:

    package YourApp::Controller::Bar;
    use base 'YourApp::BaseController::Foo';
    # now you have some_method and some_action

Finally, use __PACKAGE__->config to your advantage. 

I have a good example of controller subclassing here:

   
http://search.cpan.org/src/JROCKWAY/Catalyst-Model-Adaptor-0.01/t/lib/TestApp/BaseController/Adaptor.pm

That base class is used in a few places:

   
http://search.cpan.org/src/JROCKWAY/Catalyst-Model-Adaptor-0.01/t/lib/TestApp/Controller/Adaptor.pm
   
http://search.cpan.org/src/JROCKWAY/Catalyst-Model-Adaptor-0.01/t/lib/TestApp/Controller/Factory.pm
   
http://search.cpan.org/src/JROCKWAY/Catalyst-Model-Adaptor-0.01/t/lib/TestApp/Controller/PerRequest.pm

Pretty nice, eh?

Regards,
Jonathan Rockway


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[EMAIL PROTECTED]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to