[![Build Status](https://travis-ci.org/karupanerura/DBIx-TransactionManager-Extended.svg?branch=master)](https://travis-ci.org/karupanerura/DBIx-TransactionManager-Extended) [![Coverage Status](http://codecov.io/github/karupanerura/DBIx-TransactionManager-Extended/coverage.svg?branch=master)](https://codecov.io/github/karupanerura/DBIx-TransactionManager-Extended?branch=master)
# NAME

DBIx::TransactionManager::Extended - extended DBIx::TransactionManager

# SYNOPSIS

    use DBI;
    use DBIx::TransactionManager::Extended;

    my $dbh = DBI->connect('dbi:SQLite:');
    my $tm = DBIx::TransactionManager::Extended->new($dbh);

    # begin transaction
    $tm->txn_begin;

        # execute query
        $dbh->do("insert into foo (id, var) values (1,'baz')");
        # And you can do multiple database operations here

        for my $data (@data) {
            push @{ $txn->context_data->{data} } => $data;
            $tm->add_hook_after_commit(sub {
                my $context_data = shift; # with the current (global) transaction
                my @data = @{ $context_data->{data} };
                return unless @data;

                ...

                $context_data->{data} = [];
            });
        }

    # and commit it.
    $tm->txn_commit;

# DESCRIPTION

DBIx::TransactionManager::Extended is extended DBIx::TransactionManager.
This module provides some useful methods for application development.

# EXTENDED METHODS

## context\_data

This is a accessor for a context data.
The context data is a associative array about a current transaction's context data.

## add\_hook\_before\_commit

Adds hook that run at before the commit all transactions.

## add\_hook\_after\_commit

Adds hook that run at after the commit all transactions.

## remove\_hook\_before\_commit

Removes hook that run at before the commit all transactions.

## remove\_hook\_after\_commit

Removes hook that run at after the commit all transactions.

# SEE ALSO

[DBIx::TransactionManager](https://metacpan.org/pod/DBIx::TransactionManager)

# LICENSE

Copyright (C) karupanerura.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

# AUTHOR

karupanerura <karupa@cpan.org>