DBIx::Class::Manual::Component man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

DBIx::Class::Manual::CUsernContributed Perl DDBIx::Class::Manual::Component(3)

NAME
       DBIx::Class::Manual::Component - Developing DBIx::Class Components

WHAT IS A COMPONENT
       A component is a module that can be added in to your DBIx::Class
       classes to provide extra functionality. A good example is the PK::Auto
       component which automatically retrieves primary keys that the database
       itself creates, after the insert has happened.

USING
       Components are loaded using the load_components() method within your
       DBIx::Class classes.

	 package My::Thing;
	 use base qw( DBIx::Class::Core );
	 __PACKAGE__->load_components(qw/InflateColumn::DateTime TimeStamp/);

       Generally you do not want to specify the full package name of a
       component, instead take off the DBIx::Class:: part of it and just
       include the rest.  If you do want to load a component outside of the
       normal namespace you can do so by prepending the component name with a
       +.

	 __PACKAGE__->load_components(qw/ +My::Component /);

       Once a component is loaded all of it's methods, or otherwise, that it
       provides will be available in your class.

       The order in which is you load the components may be very important,
       depending on the component. If you are not sure, then read the docs for
       the components you are using and see if they mention anything about the
       order in which you should load them.

CREATING COMPONENTS
       Making your own component is very easy.

	 package DBIx::Class::MyComp;
	 use base qw(DBIx::Class);
	 # Create methods, accessors, load other components, etc.
	 1;

       When a component is loaded it is included in the calling class'
       inheritance chain using Class::C3.  As well as providing custom utility
       methods, a component may also override methods provided by other core
       components, like DBIx::Class::Row and others.  For example, you could
       override the insert and delete methods.

	 sub insert {
	   my $self = shift;
	   # Do stuff with $self, like set default values.
	   return $self->next::method( @_ );
	 }

	 sub delete {
	   my $self = shift;
	   # Do stuff with $self.
	   return $self->next::method( @_ );
	 }

       Now, the order that a component is loaded is very important.
       Components that are loaded first are the first ones in the inheritance
       stack.  So, if you override insert() but the DBIx::Class::Row component
       is loaded first then your insert() will never be called, since the
       DBIx::Class::Row insert() will be called first.	If you are unsure as
       to why a given method is not being called try printing out the current
       linearized MRO.

	 print join ', ' => mro::get_linear_isa('YourClass::Name');

EXISTING COMPONENTS
   Extra
       These components provide extra functionality beyond basic functionality
       that you can't live without.

       DBIx::Class::CDBICompat - Class::DBI Compatibility layer.

       DBIx::Class::FormTools - Build forms with multiple interconnected
       objects.

       DBIx::Class::HTMLWidget - Like FromForm but with DBIx::Class and
       HTML::Widget.

       DBIx::Class::Ordered - Modify the position of objects in an ordered
       list.

       DBIx::Class::PK::Auto - Retrieve automatically created primary keys
       upon insert.

       DBIx::Class::QueriesTime - Display the amount of time it takes to run
       queries.

       DBIx::Class::RandomStringColumns - Declare virtual columns that return
       random strings.

       DBIx::Class::UUIDColumns - Implicit UUID columns.

       DBIx::Class::WebForm - CRUD methods.

   Experimental
       These components are under development, their interfaces may change,
       they may not work, etc.	So, use them if you want, but be warned.

       DBIx::Class::Validation - Validate all data before submitting to your
       database.

   Core
       These are the components that all, or nearly all, people will use
       without even knowing it.	 These components provide most of DBIx::Class'
       functionality.

       DBIx::Class::Core - Loads various components that "most people" would
       want.

       DBIx::Class::AccessorGroup - Lets you build groups of accessors.

       DBIx::Class::DB - Non-recommended classdata schema component.

       DBIx::Class::InflateColumn - Automatically create objects from column
       data.

       DBIx::Class::PK - This class contains methods for handling primary keys
       and methods depending on them.

       DBIx::Class::Relationship - Inter-table relationships.

       DBIx::Class::ResultSourceProxy::Table - Provides a classdata table
       object and method proxies.

       DBIx::Class::Row - Basic row methods.

SEE ALSO
       DBIx::Class::Manual::Cookbook

AUTHOR
       Aran Clary Deltac <bluefeet@cpan.org>

perl v5.16.2			  2012-08-16 DBIx::Class::Manual::Component(3)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net