PHPackages                             sbooker/doctrine-transaction-handler - 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. sbooker/doctrine-transaction-handler

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

sbooker/doctrine-transaction-handler
====================================

Doctrine transaction handler implementation for sbooker/transaction-manager

2.4.0(1w ago)05.2k12MITPHPPHP ^7.4 || ^8.0

Since Jun 3Pushed 1w ago1 watchersCompare

[ Source](https://github.com/sbooker/doctrine-transaction-handler)[ Packagist](https://packagist.org/packages/sbooker/doctrine-transaction-handler)[ RSS](/packages/sbooker-doctrine-transaction-handler/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (4)Versions (14)Used By (2)

[Read in English](README.EN.md)

Doctrine Transaction Handler (`sbooker/doctrine-transaction-handler`)
=====================================================================

[](#doctrine-transaction-handler-sbookerdoctrine-transaction-handler)

[![Latest Version](https://camo.githubusercontent.com/3b1313632b1f245c5f1e1dd46a14459a4435a02c1c410107fef057aa2d79d1a0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73626f6f6b65722f646f637472696e652d7472616e73616374696f6e2d68616e646c65722e7376673f7374796c653d666c61742d737175617265)](https://img.shields.io/packagist/v/sbooker/doctrine-transaction-handler)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://github.com/sbooker/doctrine-transaction-handler/blob/master/LICENSE)[![PHP Version](https://camo.githubusercontent.com/262e561ea8a86152ea0f9f075eb864f8a9cf4a714573d1a80404d6a2f440894a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f73626f6f6b65722f646f637472696e652d7472616e73616374696f6e2d68616e646c65722e7376673f7374796c653d666c61742d737175617265)](https://php.net)[![Total Downloads](https://camo.githubusercontent.com/2359f952c68d2550d05b6ce6be7be2d83280908a2ecaa4d966dacf042dc943bd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73626f6f6b65722f646f637472696e652d7472616e73616374696f6e2d68616e646c65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sbooker/doctrine-transaction-handler)

Готовая реализация `TransactionHandler` для интеграции [sbooker/transaction-manager](https://github.com/sbooker/transaction-manager) с Doctrine ORM.

Назначение библиотеки
---------------------

[](#назначение-библиотеки)

Эта библиотека — "мост" между абстрактным менеджером транзакций и Doctrine ORM. Она избавляет вас от необходимости писать собственный адаптер.

Так же библиотека решает фундаментальную проблему **управления памятью и состоянием в долгоживущих процессах** (воркерах, консьюмерах), которые являются одним из сценариев использования `transaction-manager`.

Ключевые особенности
--------------------

[](#ключевые-особенности)

- **Автоматическое управление памятью и состоянием:** После каждого успешного коммита обработчик вызывает `EntityManager::clear()`. Это **критически важно** для долгоживущих процессов и обеспечивает:
    - **Предотвращение утечек памяти:** Unit of Work не разрастается бесконечно.
    - **Гарантию свежести данных:** На каждой новой итерации сущности будут загружены из БД заново.
    - **Изоляцию операций:** Состояние предыдущей транзакции не влияет на следующую.
- **Готовое решение:** Просто установите и используйте.
- **Пессимистичная блокировка:** Гарантирует целостность данных при одновременном доступе "из коробки" (`LockMode::PESSIMISTIC_WRITE`).
- **Правильная обработка исключений:** Корректно преобразует `UniqueConstraintViolationException` в `UniqueConstraintViolation` из `transaction-manager`.

Установка
---------

[](#установка)

```
composer require sbooker/doctrine-transaction-handler
```

**Зависимости:**

- `sbooker/transaction-manager`
- `doctrine/orm`

Использование
-------------

[](#использование)

Использование библиотеки сводится к одному шагу — созданию экземпляра `DoctrineTransactionHandler` и передаче его в `TransactionManager`.

```
// bootstrap.php или ваш DI-контейнер

use Doctrine\ORM\EntityManagerInterface;
use Sbooker\TransactionManager\TransactionManager;
use Sbooker\TransactionManager\DoctrineTransactionHandler;

/** @var EntityManagerInterface $entityManager */

// 1. Создаем обработчик, передав в него EntityManager
$transactionHandler = new DoctrineTransactionHandler($entityManager);

// 2. Создаем менеджер транзакций
$transactionManager = new TransactionManager($transactionHandler);

// 3. Готово! Теперь используйте $transactionManager в вашем прикладном коде
$transactionManager->transactional(function () {
    // ... ваш код ...
});
// После успешного выполнения этого блока, $entityManager->clear() будет вызван автоматически.
```

После этой простой настройки вы можете полноценно использовать `TransactionManager` во всем приложении, как описано в его [документации](https://github.com/sbooker/transaction-manager).

License
-------

[](#license)

See [LICENSE](https://github.com/sbooker/doctrine-transaction-handler/blob/master/LICENSE) file.

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance98

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity67

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 ~215 days

Recently: every ~399 days

Total

11

Last Release

10d ago

Major Versions

0.9.0 → 1.0.12021-01-09

1.0.1 → 2.0.02021-08-29

2.2.0 → 3.x-dev2022-08-28

PHP version history (3 changes)1.0.0PHP ^7.4

0.9.0PHP ^7.1

1.0.1PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/f97b1f6ea03776dda6e0ec26d1ff3a3309972d65bd1376eb111c2b35017af339?d=identicon)[sbooker](/maintainers/sbooker)

---

Top Contributors

[![sbooker](https://avatars.githubusercontent.com/u/3658174?v=4)](https://github.com/sbooker "sbooker (8 commits)")[![s0lus](https://avatars.githubusercontent.com/u/4124371?v=4)](https://github.com/s0lus "s0lus (1 commits)")

### Embed Badge

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

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

###  Alternatives

[scienta/doctrine-json-functions

A set of extensions to Doctrine that add support for json query functions.

58523.9M35](/packages/scienta-doctrine-json-functions)[damienharper/auditor-bundle

Integrate auditor library in your Symfony projects.

4542.8M](/packages/damienharper-auditor-bundle)[sonata-project/entity-audit-bundle

Audit for Doctrine Entities

644989.8k1](/packages/sonata-project-entity-audit-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1022.4k](/packages/rcsofttech-audit-trail-bundle)[heymoon/doctrine-psql-enum

Store PHP native enums as PostgeSQL custom enum types

254.9k](/packages/heymoon-doctrine-psql-enum)

PHPackages © 2026

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