allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s

This commit is contained in:
2026-03-30 14:54:57 +07:00
parent 66aed7c4e8
commit b5e3a778ce
21316 changed files with 2777892 additions and 13 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace Maatwebsite\Excel\Transactions;
use Illuminate\Database\ConnectionInterface;
class DbTransactionHandler implements TransactionHandler
{
/**
* @var ConnectionInterface
*/
private $connection;
/**
* @param ConnectionInterface $connection
*/
public function __construct(ConnectionInterface $connection)
{
$this->connection = $connection;
}
/**
* @param callable $callback
* @return mixed
*
* @throws \Throwable
*/
public function __invoke(callable $callback)
{
return $this->connection->transaction($callback);
}
}

View File

@@ -0,0 +1,15 @@
<?php
namespace Maatwebsite\Excel\Transactions;
class NullTransactionHandler implements TransactionHandler
{
/**
* @param callable $callback
* @return mixed
*/
public function __invoke(callable $callback)
{
return $callback();
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace Maatwebsite\Excel\Transactions;
interface TransactionHandler
{
/**
* @param callable $callback
* @return mixed
*/
public function __invoke(callable $callback);
}

View File

@@ -0,0 +1,35 @@
<?php
namespace Maatwebsite\Excel\Transactions;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Manager;
class TransactionManager extends Manager
{
/**
* @return string
*/
public function getDefaultDriver()
{
return config('excel.transactions.handler');
}
/**
* @return NullTransactionHandler
*/
public function createNullDriver()
{
return new NullTransactionHandler();
}
/**
* @return DbTransactionHandler
*/
public function createDbDriver()
{
return new DbTransactionHandler(
DB::connection(config('excel.transactions.db.connection'))
);
}
}