PHPackages                             remi-san/transaction-manager - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. remi-san/transaction-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

remi-san/transaction-manager
============================

A simple transaction manager

v2.1.1(7y ago)259.4k1[1 PRs](https://github.com/remi-san/transaction-manager/pulls)2MITPHPPHP &gt;=5.5

Since Mar 15Pushed 6y ago1 watchersCompare

[ Source](https://github.com/remi-san/transaction-manager)[ Packagist](https://packagist.org/packages/remi-san/transaction-manager)[ RSS](/packages/remi-san-transaction-manager/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (7)Dependencies (9)Versions (9)Used By (2)

Transaction Manager
===================

[](#transaction-manager)

[![Author](https://camo.githubusercontent.com/4488dd05eac93ae677fc802ca3f7ecdf019ffac5386384282044a33dd0858654/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f617574686f722d4052656d6953616e2d626c75652e7376673f7374796c653d666c61742d737175617265)](https://twitter.com/RemiSan)[![Build Status](https://camo.githubusercontent.com/91905c491b04f148d80de424f3f67050fbea4c9203d74c4ec694641debd688d6/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f72656d692d73616e2f7472616e73616374696f6e2d6d616e616765722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/remi-san/transaction-manager)[![Quality Score](https://camo.githubusercontent.com/de1f79dadc29715deb303bce8eb2cb85f47f969738a66a4f24602ef4aa389bb3/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f72656d692d73616e2f7472616e73616374696f6e2d6d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/remi-san/transaction-manager)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Packagist Version](https://camo.githubusercontent.com/952f7fe2db7650ed6612e146445905cf90f6181a9fcca25297879191a3f1f497/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72656d692d73616e2f7472616e73616374696f6e2d6d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/remi-san/transaction-manager)[![Coverage Status](https://camo.githubusercontent.com/b1e88d10d195c30a4faeb6baa8f66b12f6acd69d1b3b2fb3a367e0aa7045d35c/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f72656d692d73616e2f7472616e73616374696f6e2d6d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/remi-san/transaction-manager/code-structure)[![SensioLabsInsight](https://camo.githubusercontent.com/a8dcb1c67e6b7e955580616e871eeb881cab860159e5db549a22a2a2f418c8e9/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f66383364353037372d383337342d346662642d613230632d6232616261366334393661662f736d616c6c2e706e67)](https://insight.sensiolabs.com/projects/f83d5077-8374-4fbd-a20c-b2aba6c496af)

A simple transaction manager with a naive implementation.

It provides a common interface to manage transactions.

If you want to make a class transactional, implement the `Transactional` interface.

Transaction Manager
-------------------

[](#transaction-manager-1)

Two `TransactionManager` implementations are provided allowing you to manage multiple `Transactional` classes in the same logic transaction.

- `SimpleTransactionManager` is a naive implementation preventing from beginning a transaction more than once.
- `MultipleTransactionManager` allows you to begin the transaction more than once but only commits if `commit` is called the same number of times as `beginTransaction`.

Implementations
---------------

[](#implementations)

Some `Transactional` implementations are provided:

- `TransactionalQueuePublisher` to publish in an AMQP queue with [`Burrow`](https://github.com/Evaneos/Burrow) in a transaction
- `DoctrineDbalTransactionManager` to deal with [`Doctrine DBAL`](https://github.com/doctrine/dbal) transactions
- `DoctrineEntityManager` to deal with [`Doctrine ORM`](https://github.com/doctrine/doctrine2) transactions
- `TransactionalEmitter` to emit `Events` with the [`PHP League` lib](https://github.com/thephpleague/event) in a transaction
- `TransactionalCommandBus` to handle `Commands` with the [`PHP League` lib](https://github.com/thephpleague/tactician) in a transaction

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 88.9% 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 ~141 days

Recently: every ~170 days

Total

7

Last Release

2910d ago

Major Versions

v1.2.0 → v2.0.02017-01-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/9999746240ba052017622ecdce5ac44e6a43db5f38084ff7644691207925c043?d=identicon)[remi-san](/maintainers/remi-san)

---

Top Contributors

[![remi-san](https://avatars.githubusercontent.com/u/5213540?v=4)](https://github.com/remi-san "remi-san (16 commits)")[![fhuitelec](https://avatars.githubusercontent.com/u/6122860?v=4)](https://github.com/fhuitelec "fhuitelec (1 commits)")[![Pol-Valentin](https://avatars.githubusercontent.com/u/2620286?v=4)](https://github.com/Pol-Valentin "Pol-Valentin (1 commits)")

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/remi-san-transaction-manager/health.svg)

```
[![Health](https://phpackages.com/badges/remi-san-transaction-manager/health.svg)](https://phpackages.com/packages/remi-san-transaction-manager)
```

###  Alternatives

[symfony/stimulus-bundle

Integration with your Symfony app &amp; Stimulus!

17316.3M265](/packages/symfony-stimulus-bundle)[kayandra/hashidable

Auto Hashids for Laravel Models and Routes

1320.9k](/packages/kayandra-hashidable)

PHPackages © 2026

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