AppVeyor Build Status Windows MacOS Linux

NAME

MooX::Role::DBIConnection - handy mixin for objects with a DB connection

SYNOPSIS

{ package My::Example;
  use Moo 2;
  with 'MooX::Role::DBIConnection';
};

# Lazily connect using the parameters
my $writer = My::Example->new(
    dbh => {
        dsn  => '...',
        user => '...',
        password => '...',
        options => '...',
    },
);

# ... or alternatively if you have a connection already
my $writer2 = My::Example->new(
    dbh => $dbh,
);

This module enhances your class constructor by allowing you to pass in either a premade dbh or the parameters needed to create one.

The dbh method will then return either the passed-in database handle or try a connection to the database at the first use.

OPTIONS

The following options can be passed in the hashref to specify

METHODS

The following methods are mixed in through this role:

->dbh

my $dbh = $self->dbh;

Connects to the database if needed and returns the database handle

->reconnect_dbh

if( my $child = fork ) {
    ...
} else {
    # in child process
    # We need a fresh database connection
    $self->reconnect_dbh;
}

Opens a new database connection. If an old connection existed, it is not closed.

REPOSITORY

The public repository of this module is https://github.com/Corion/MooX-Role-DBIConnection.

SUPPORT

The public support forum of this module is https://perlmonks.org/.

BUG TRACKER

Please report bugs in this module via the RT CPAN bug queue at https://rt.cpan.org/Public/Dist/Display.html?Name=MooX-Role-DBIConnection or via mail to MooX-Role-DBIConnection@rt.cpan.org.

AUTHOR

Max Maischein corion@cpan.org

COPYRIGHT (c)

Copyright 2019-2024 by Max Maischein corion@cpan.org.

LICENSE

This module is released under the same terms as Perl itself.