tito10047/doctrine-transaction
最新稳定版本:0.1.1
Composer 安装命令:
composer require tito10047/doctrine-transaction
包简介
Library to manage doctrine transaction
README 文档
README
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
composer require tito10047/doctrine-transaction
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; } } }
统计信息
- 总下载量: 628
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-09-22