Aniki::Handler - Database handler manager
# define custom database handler class pakcage MyApp::DB::Handler { use Mouse; extends qw/Aniki::Handler/; has '+connect_info' => ( is => 'rw', ); has servers => ( is => 'ro', isa => 'ArrayRef[Str]', ); sub _choice { @_[int rand scalar @_] } around connect => sub { my $self = shift; my ($dsn, $user, $pass, $attr) = @{ $self->connect_info }; $attr->{host} = _choice(@{ $self->servers }); $self->connect_info([$dsn, $user, $pass, $attr]); return DBIx::Handler->new($dsn, $user, $pass, $attr, { on_connect_do => $self->on_connect_do, on_disconnect_do => $self->on_disconnect_do, }); }; }; # and use it package MyApp::DB { use Mouse; extends qw/Aniki::Handler/; __PACKAGE__->setup( handler => 'MyApp::DB::Handler', ); } 1;
This is database handler manager.
new(%args) : Aniki::Handler
Create instance of Aniki::Handler.
connect_info : ArrayRef
Auguments for DBI's connect method.
Execute SQL or CodeRef when connected/disconnected.
connect() : DBIx::Handler
Create instance of DBIx::Handler. You can override it in your custom handler class.
on_connect_do : CodeRef|ArrayRef[Str]|Str
on_disconnect_do : CodeRef|ArrayRef[Str]|Str
dbh : DBI::db
handler : DBIx::Handler
txn_manager : DBIx::TransactionManager
To install Aniki, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Aniki
CPAN shell
perl -MCPAN -e shell install Aniki
For more information on module installation, please visit the detailed CPAN module installation guide.