Update manifest.
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / DB.pm
CommitLineData
ea2e61bf 1package DBIx::Class::DB;
2
3use base qw/Class::Data::Inheritable/;
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
34=over 4
35
36=cut
37
8b445e33 38__PACKAGE__->mk_classdata('storage');
11b78bd6 39__PACKAGE__->mk_classdata('class_resolver' =>
40 'DBIx::Class::ClassResolver::PassThrough');
8fe001e1 41
39fe0e65 42=item connection
43
44 __PACKAGE__->connection($dsn, $user, $pass, $attrs);
45
46Specifies the arguments that will be passed to DBI->connect(...) to
47instantiate the class dbh when required.
48
49=cut
50
8fe001e1 51sub connection {
52 my ($class, @info) = @_;
8b445e33 53 my $storage = DBIx::Class::Storage::DBI->new;
54 $storage->connect_info(\@info);
55 $class->storage($storage);
ea2e61bf 56}
57
39fe0e65 58=item dbi_commit
59
60 $class->dbi_commit;
61
62Issues a commit again the current dbh
63
64=cut
65
8b445e33 66sub dbi_commit { $_[0]->storage->commit; }
a29644e1 67
39fe0e65 68=item dbi_rollback
69
70 $class->dbi_rollback;
71
72Issues a rollback again the current dbh
73
74=cut
75
8b445e33 76sub dbi_rollback { $_[0]->storage->rollback; }
77
11b78bd6 78sub resolve_class { return shift->class_resolver->class(@_); }
79
ea2e61bf 801;
34d52be2 81
82=back
83
84=head1 AUTHORS
85
daec44b8 86Matt S. Trout <mst@shadowcatsystems.co.uk>
34d52be2 87
88=head1 LICENSE
89
90You may distribute this code under the same terms as Perl itself.
91
92=cut
93