Deprecate DBIx::Class::Serialize::Storable (all functionality is in ResultSourceHandle)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Manual / Component.pod
index 2607e36..dfa9f94 100644 (file)
@@ -12,31 +12,29 @@ itself creates, after the insert has happened.
 
 =head1 USING
 
-Components are loaded using the load_components() method within your 
+Components are loaded using the load_components() method within your
 DBIx::Class classes.
 
   package My::Thing;
-  use base qw( DBIx::Class );
-  __PACKAGE__->load_components(qw/ PK::Auto Core /);
+  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 
+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, 
+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.  The general 
-rule of thumb is to first load extra components and then 
-load core ones last.  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.
+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.
 
 =head1 CREATING COMPONENTS
 
@@ -47,11 +45,11 @@ Making your own component is very easy.
   # Create methods, accessors, load other components, etc.
   1;
 
-When a component is loaded it is included in the calling 
-class' inheritance chain using L<Class::C3>.  As well as 
-providing custom utility methods, a component may also 
-override methods provided by other core components, like 
-L<DBIx::Class::Row> and others.  For example, you 
+When a component is loaded it is included in the calling
+class' inheritance chain using L<Class::C3>.  As well as
+providing custom utility methods, a component may also
+override methods provided by other core components, like
+L<DBIx::Class::Row> and others.  For example, you
 could override the insert and delete methods.
 
   sub insert {
@@ -59,18 +57,18 @@ could override the insert and delete methods.
     # 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 
+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 Class::C3 inheritance stack.
 
   print join ', ' => Class::C3::calculateMRO('YourClass::Name');
@@ -81,7 +79,7 @@ Check out the L<Class::C3> docs for more information about inheritance.
 
 =head2 Extra
 
-These components provide extra functionality beyond 
+These components provide extra functionality beyond
 basic functionality that you can't live without.
 
 L<DBIx::Class::CDBICompat> - Class::DBI Compatibility layer.
@@ -90,40 +88,36 @@ L<DBIx::Class::FormTools> - Build forms with multiple interconnected objects.
 
 L<DBIx::Class::HTMLWidget> - Like FromForm but with DBIx::Class and HTML::Widget.
 
+L<DBIx::Class::Ordered> - Modify the position of objects in an ordered list.
+
 L<DBIx::Class::PK::Auto> - Retrieve automatically created primary keys upon insert.
 
 L<DBIx::Class::QueriesTime> - Display the amount of time it takes to run queries.
 
 L<DBIx::Class::RandomStringColumns> - Declare virtual columns that return random strings.
 
-L<DBIx::Class::UTF8Columns> - Force UTF8 (Unicode) flag on columns.
-
 L<DBIx::Class::UUIDColumns> - Implicit UUID columns.
 
 L<DBIx::Class::WebForm> - CRUD methods.
 
 =head2 Experimental
 
-These components are under development, there interfaces may 
-change, they may not work, etc.  So, use them if you want, but 
+These components are under development, their interfaces may
+change, they may not work, etc.  So, use them if you want, but
 be warned.
 
-L<DBIx::Class::Serialize> - Hooks for Storable freeze/thaw.
-
-L<DBIx::Class::Serialize::Storable> - Hooks for Storable freeze/thaw.
-
 L<DBIx::Class::Validation> - Validate all data before submitting to your database.
 
 =head2 Core
 
-These are the components that all, or nearly all, people will use 
-without even knowing it.  These components provide most of 
+These are the components that all, or nearly all, people will use
+without even knowing it.  These components provide most of
 DBIx::Class' functionality.
 
-L<DBIx::Class::AccessorGroup> - Lets you build groups of accessors.
-
 L<DBIx::Class::Core> - Loads various components that "most people" would want.
 
+L<DBIx::Class::AccessorGroup> - Lets you build groups of accessors.
+
 L<DBIx::Class::DB> - Non-recommended classdata schema component.
 
 L<DBIx::Class::InflateColumn> - Automatically create objects from column data.
@@ -143,4 +137,3 @@ L<DBIx::Class::Manual::Cookbook>
 =head1 AUTHOR
 
 Aran Clary Deltac <bluefeet@cpan.org>
-