Commit | Line | Data |
---|---|---|
ea2e61bf | 1 | package DBIx::Class::DB; |
2 | ||
3 | use base qw/Class::Data::Inheritable/; | |
8b445e33 | 4 | use DBIx::Class::Storage::DBI; |
11b78bd6 | 5 | use DBIx::Class::ClassResolver::PassThrough; |
604d9f38 | 6 | use DBI; |
ea2e61bf | 7 | |
34d52be2 | 8 | =head1 NAME |
9 | ||
8b445e33 | 10 | DBIx::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 | 30 | This 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 | ||
46 | Specifies the arguments that will be passed to DBI->connect(...) to | |
47 | instantiate the class dbh when required. | |
48 | ||
49 | =cut | |
50 | ||
8fe001e1 | 51 | sub 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 | ||
62 | Issues a commit again the current dbh | |
63 | ||
64 | =cut | |
65 | ||
8b445e33 | 66 | sub dbi_commit { $_[0]->storage->commit; } |
a29644e1 | 67 | |
39fe0e65 | 68 | =item dbi_rollback |
69 | ||
70 | $class->dbi_rollback; | |
71 | ||
72 | Issues a rollback again the current dbh | |
73 | ||
74 | =cut | |
75 | ||
8b445e33 | 76 | sub dbi_rollback { $_[0]->storage->rollback; } |
77 | ||
11b78bd6 | 78 | sub resolve_class { return shift->class_resolver->class(@_); } |
79 | ||
ea2e61bf | 80 | 1; |
34d52be2 | 81 | |
82 | =back | |
83 | ||
84 | =head1 AUTHORS | |
85 | ||
daec44b8 | 86 | Matt S. Trout <mst@shadowcatsystems.co.uk> |
34d52be2 | 87 | |
88 | =head1 LICENSE | |
89 | ||
90 | You may distribute this code under the same terms as Perl itself. | |
91 | ||
92 | =cut | |
93 |