Provided by: libmason-perl_2.21-1_all bug

NAME

       Mason::Manual::Subclasses - Creating custom subclasses of Mason's classes

DESCRIPTION

       You can subclass the following Mason classes for your application:

           Mason::CodeCache
           Mason::Compilation
           Mason::Component
           Mason::Component::ClassMeta
           Mason::Component::Import
           Mason::Component::Moose
           Mason::Interp
           Mason::Request
           Mason::Result

       and arrange things so that Mason always uses your subclass instead of its default class.

       Note: if you want to create a general purpose modification to Mason to use in multiple
       applications, you should probably create a plugin instead of a subclass.

CREATING A SUBCLASS

       A subclass should look something like this:

           package My::Mason::Interp;
           use Moose;
           extends 'Mason::Interp';

           # put your modifications here

           1;

LETTING MASON KNOW ABOUT YOUR SUBCLASSES

       There are two ways to let Mason know about your subclasses: by naming convention, and by
       parameters to "Mason->new".

   By naming convention
       First, create a subclass of Mason itself:

           package My::Mason;
           use Moose;
           extends 'Mason';

           1;

       and use that in place of "Mason" in construction:

           my $interp = My::Mason->new();

       Now, you can place any subclasses under 'My::Mason' and they'll automatically be picked
       up. e.g.

           My::Mason::Compilation
           My::Mason::Interp
           My::Mason::Request

By constructor parameter

       You can specify your subclasses via "base_*" parameters to "Mason->new()".  e.g.

           my $interp = Mason->new(
                base_compilation_class => 'My::Mason::Compilation',
                base_interp_class => 'My::Mason::Interp'
                base_request_class => 'Some::Other::Mason::Request'
           );

       See "CUSTOM MASON CLASSES" in Mason::Interp for a complete list.

SEE ALSO

       Mason

AUTHOR

       Jonathan Swartz <swartz@pobox.com>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2012 by Jonathan Swartz.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.