23 lines
456 B
PHP
23 lines
456 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Infrastructure\Adapters\Services;
|
|
|
|
use Domain\Ports\Services\TransactionManager;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class LaravelTransactionManager implements TransactionManager
|
|
{
|
|
/**
|
|
* @template T
|
|
*
|
|
* @param callable(): T $callback
|
|
* @return T
|
|
*/
|
|
#[\Override]
|
|
public function execute(callable $callback)
|
|
{
|
|
return DB::transaction(fn () => $callback());
|
|
}
|
|
}
|