item => head2 in docs
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / DB.pm
CommitLineData
ea2e61bf 1package DBIx::Class::DB;
2
1edd1722 3use base qw/DBIx::Class/;
8b445e33 4use DBIx::Class::Storage::DBI;
11b78bd6 5use DBIx::Class::ClassResolver::PassThrough;
604d9f38 6use DBI;
ea2e61bf 7
34d52be2 8=head1 NAME
9
8b445e33 10DBIx::Class::DB - Simple DBIx::Class Database connection by class inheritance
34d52be2 11
12=head1 SYNOPSIS
13
8b445e33 14 package MyDB;
15
16 use base qw/DBIx::Class/;
503536d5 17 __PACKAGE__->load_components('DB');
8b445e33 18
19 __PACKAGE__->connection('dbi:...', 'user', 'pass', \%attrs);
20
21 package MyDB::MyTable;
22
23 use base qw/MyDB/;
503536d5 24 __PACKAGE__->load_components('Core');
4a9d7cae 25
26 ...
8b445e33 27
34d52be2 28=head1 DESCRIPTION
29
8b445e33 30This class provides a simple way of specifying a database connection.
34d52be2 31
32=head1 METHODS
33
130c6439 34=head2 storage
34d52be2 35
130c6439 36Sets or gets the storage backend. Defaults to L<DBIx::Class::Storage::DBI>.
076652e8 37
130c6439 38=head2 class_resolver
076652e8 39
130c6439 40Sets or gets the class to use for resolving a class. Defaults to
41L<DBIx::Class::ClassResolver::Passthrough>, which returns whatever you give
42it. See resolve_class below.
076652e8 43
34d52be2 44=cut
45
8b445e33 46__PACKAGE__->mk_classdata('storage');
11b78bd6 47__PACKAGE__->mk_classdata('class_resolver' =>
48 'DBIx::Class::ClassResolver::PassThrough');
8fe001e1 49
130c6439 50=head2 connection
39fe0e65 51
52 __PACKAGE__->connection($dsn, $user, $pass, $attrs);
53
54Specifies the arguments that will be passed to DBI->connect(...) to
55instantiate the class dbh when required.
56
57=cut
58
8fe001e1 59sub connection {
60 my ($class, @info) = @_;
8b445e33 61 my $storage = DBIx::Class::Storage::DBI->new;
62 $storage->connect_info(\@info);
63 $class->storage($storage);
ea2e61bf 64}
65
130c6439 66=head2 dbi_commit
39fe0e65 67
130c6439 68Issues a commit against the current dbh.
39fe0e65 69
70=cut
71
8b445e33 72sub dbi_commit { $_[0]->storage->commit; }
a29644e1 73
130c6439 74=head2 dbi_rollback
39fe0e65 75
130c6439 76Issues a rollback against the current dbh.
39fe0e65 77
78=cut
79
8b445e33 80sub dbi_rollback { $_[0]->storage->rollback; }
81
11b78bd6 82sub resolve_class { return shift->class_resolver->class(@_); }
83
ea2e61bf 841;
34d52be2 85
34d52be2 86=head1 AUTHORS
87
daec44b8 88Matt S. Trout <mst@shadowcatsystems.co.uk>
34d52be2 89
90=head1 LICENSE
91
92You may distribute this code under the same terms as Perl itself.
93
94=cut
95