PHPackages                             tito10047/doctrine-transaction - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. tito10047/doctrine-transaction

ActiveLibrary[Database &amp; ORM](/categories/database)

tito10047/doctrine-transaction
==============================

Library to manage doctrine transaction

0.1.1(1y ago)0809↓50%1MITPHPPHP &gt;=8.1

Since Sep 23Pushed 1y ago1 watchersCompare

[ Source](https://github.com/tito10047/doctrine-transaction)[ Packagist](https://packagist.org/packages/tito10047/doctrine-transaction)[ RSS](/packages/tito10047-doctrine-transaction/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (3)Used By (1)

[![Tests](https://github.com/tito10047/doctrine-transaction/actions/workflows/unit-test.yml/badge.svg)](https://github.com/tito10047/doctrine-transaction/actions/workflows/unit-test.yml/badge.svg)[![Coverage Status](https://camo.githubusercontent.com/dcd4bbf252c7aab4ae4a91659c02de76d4e883ed41fc1194a29733944ecc92e4/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f7469746f31303034372f646f637472696e652d7472616e73616374696f6e2f62616467652e7376673f6272616e63683d6d61696e)](https://coveralls.io/github/tito10047/doctrine-transaction?branch=main)

Doctrine Transaction
====================

[](#doctrine-transaction)

When you use Repository classes in your application, and don't use EntityManager directly, you can't use the transaction methods on Repository classes. This package allows you to use transactions anywhere in your application.

This package is also useful when you need to use multiple connections in the same transaction.

Setup
-----

[](#setup)

```
composer require tito10047/doctrine-transaction

```

Try it
------

[](#try-it)

```
#service.yaml
services:
    Tito10047\DoctrineTransaction\TransactionManagerInterface:
        class: Tito10047\DoctrineTransaction\TransactionManager
```

```
use Tito10047\DoctrineTransaction\TransactionManager;

class MyService
{

    public function __construct(private readonly TransactionManagerInterface $tm)
    {
    }

    public function myMethod()
    {
        $transaction = $this->tm->beginTransaction();
        try {
            // Your code
            $transaction->commit();
        } catch (\Exception $e) {
            $transaction->rollback();
            throw $e;
        }
    }

    public function myBatchMethod() {
        $transaction = $this->tm->beginTransaction();
        try {
            for($i = 0; $i < 100; $i++) {
                $myEntity = new MyEntity();
                if ($transaction->batchCommit($i,10)){
                    $transaction->clear(MyEntity::class);
                }
            }
            $transaction->commit();
        } catch (\Exception $e) {
            $transaction->rollback();
            throw $e;
        }
    }

    public function myCallbacksMethod() {
        $transaction = $this->tm
            ->beginTransaction()
            ->addCommitHandler(function() {
                // Your code
            })
            ->addRollbackHandler(function() {
                // Your code
            });
        try {
            for($i = 0; $i < 100; $i++) {
                $myEntity = new MyEntity();
                if ($transaction->batchCommit($i,10)){
                    $transaction->clear(MyEntity::class);
                }
            }
            $transaction->commit();
        } catch (\Exception $e) {
            $transaction->rollback();
            throw $e;
        }
    }

    public function multipleConnections() {
        $transaction = $this->tm->beginTransaction('connection1','connection2');
        try {
            // Your code
            $transaction->commit();
        } catch (\Exception $e) {
            $transaction->rollback();
            throw $e;
        }
    }
}
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

596d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d6d558226302620ec462f64672e9dc81609227626923a808005641e76e8c38f?d=identicon)[tito10047](/maintainers/tito10047)

---

Top Contributors

[![tito10047](https://avatars.githubusercontent.com/u/11459248?v=4)](https://github.com/tito10047 "tito10047 (12 commits)")

---

Tags

doctrinerepositorytransaction

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/tito10047-doctrine-transaction/health.svg)

```
[![Health](https://phpackages.com/badges/tito10047-doctrine-transaction/health.svg)](https://phpackages.com/packages/tito10047-doctrine-transaction)
```

###  Alternatives

[happyr/doctrine-specification

Specification Pattern for your Doctrine repositories

452915.0k8](/packages/happyr-doctrine-specification)[rikbruil/doctrine-specification

Doctrine Specification pattern for building queries dynamically and with re-usable classes for composition.

50251.6k2](/packages/rikbruil-doctrine-specification)[mediagone/doctrine-specifications

Doctrine implementation of repository Specifications pattern

353.8k3](/packages/mediagone-doctrine-specifications)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
