Provided by: libdbix-class-helpers-perl_2.032000-1_all bug

NAME

       DBIx::Class::Helper::Row::SubClass - Convenient subclassing with DBIx::Class

SYNOPSIS

        # define parent class
        package ParentSchema::Result::Bar;

        use strict;
        use warnings;

        use parent 'DBIx::Class';

        __PACKAGE__->load_components('Core');

        __PACKAGE__->table('Bar');

        __PACKAGE__->add_columns(qw/ id foo_id /);

        __PACKAGE__->set_primary_key('id');

        __PACKAGE__->belongs_to( foo => 'ParentSchema::Result::Foo', 'foo_id' );

        # define subclass
        package MySchema::Result::Bar;

        use strict;
        use warnings;

        use parent 'ParentSchema::Result::Bar';

        __PACKAGE__->load_components(qw{Helper::Row::SubClass Core});

        __PACKAGE__->subclass;

       or with DBIx::Class::Candy:

        # define subclass
        package MySchema::Result::Bar;

        use DBIx::Class::Candy
           -base => 'ParentSchema::Result::Bar',
           -components => ['Helper::Row::SubClass'];

        subclass;

DESCRIPTION

       This component is to allow simple subclassing of DBIx::Class Result classes.

METHODS

   subclass
       This is probably the method you want.  You call this in your child class and it imports
       the definitions from the parent into itself.

   generate_relationships
       This is where the cool stuff happens.  This assumes that the namespace is laid out in the
       recommended "MyApp::Schema::Result::Foo" format.  If the parent has
       "Parent::Schema::Result::Foo" related to "Parent::Schema::Result::Bar", and you inherit
       from "Parent::Schema::Result::Foo" in "MyApp::Schema::Result::Foo", you will automatically
       get the relationship to "MyApp::Schema::Result::Bar".

   set_table
       This is a super basic method that just sets the current classes' table to the parent
       classes' table.

CANDY EXPORTS

       If used in conjunction with DBIx::Class::Candy this component will export:

       join_table
       subclass
       generate_relationships
       set_table

NOTE

       This Component is mostly aimed at those who want to subclass parts of a schema, maybe for
       sharing a login system in a few different projects.  Do not confuse it with
       DBIx::Class::DynamicSubclass, which solves an entirely different problem.
       DBIx::Class::DynamicSubclass is for when you want to store a few very similar classes in
       the same table (Employee, Person, Boss, etc) whereas this component is merely for reusing
       an existing schema.

AUTHOR

       Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2015 by Arthur Axel "fREW" Schmidt.

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