You will also want to load some of L<DBIx::Class>'s components.
L<DBIx::Class::Core> provides a good basic set. In addition you'll
have to use either L<DBIx::Class::Schema> or L<DBIx::Class::DB> We'll
-use DB in this introduction, since it involves less magic.
+use DB in this introduction, since it involves less magic. Schema is
+mostly useful if you want to use multiple database connections.
__PACKAGE__->load_components(qw/Core DB/);
=head1 DESCRIPTION
+Creates database classes based on a schema. This allows you to have more than
+one concurrent connection using the same database classes, by making
+subclasses under a new namespace for each connection. If you only need one
+class, you should probably use L<DBIx::Class::DB> directly instead.
+
=head1 METHODS
=over 4
=item register_class <component> <component_class>
Registers the class in the schema's class_registrations. This is a hash
-containing components, and their representative classes. It's used by
+containing database classes, keyed by their monikers. It's used by
compose_connection to create/modify all the existing database classes.
=cut
=item load_classes [<classes>}
-Uses L<Module::Find> to find all components, unless specified explicitly.
-Then it loads the component (using L<use>), and registers them (using
-B<register_class>
+Uses L<Module::Find> to find all classes under the database class' namespace,
+or uses the classes you select. Then it loads the component (using L<use>),
+and registers them (using B<register_class>);
=cut
}
}
-=item compose_connection
+=item compose_connection <target> <@db_info>
+
+This is the most important method in this class. it takes a target namespace,
+as well as dbh connection info, and creates a L<DBIx::Class::DB> class as
+well as subclasses for each of your database classes in this namespace, using
+this connection.
=cut
=item setup_connection_class <$target> <@info>
+Sets up a database connection class to inject between the schema
+and the subclasses the schema creates.
+
=cut
sub setup_connection_class {