GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  DBIX::CLASS::HELPER::ROW::SUBCLASS (3)

.ds Aq ’

NAME

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

CONTENTS

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.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 DBIX::CLASS::HELPER::ROW::SUBCLASS (3) 2015-11-07

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.