Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DBIx::Class::Helper::RUserSContributed PeDBIx::Class::Helper::Row::SubClass(3)

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) 2020 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.

perl v5.32.1			  2020-03DBIx::Class::Helper::Row::SubClass(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | CANDY EXPORTS | NOTE | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DBIx::Class::Helper::Row::SubClass&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help