The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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

dsn

DBI dsn to connect to

user

Database user to use when connecting to the database. This is the second parameter used in the call to DBI->connect(...).

password

Database password to use when connecting to the database. This is the third parameter used in the call to DBI->connect(...).

options

Database options to use when connecting to the database. This is the fourth parameter used in the call to DBI->connect(...).

eager

Whether to connect to the database immediately or upon the first call to the the ->dbh. The default is to make the connection lazily on first use.

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-2023 by Max Maischein corion@cpan.org.

LICENSE

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