TransactionManager.php 0000644 00000001251 15152066100 0011030 0 ustar 00 <?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'))
);
}
}
NullTransactionHandler.php 0000644 00000000422 15152066100 0011665 0 ustar 00 <?php
namespace Maatwebsite\Excel\Transactions;
class NullTransactionHandler implements TransactionHandler
{
/**
* @param callable $callback
* @return mixed
*/
public function __invoke(callable $callback)
{
return $callback();
}
}
TransactionHandler.php 0000644 00000000315 15152066100 0011033 0 ustar 00 <?php
namespace Maatwebsite\Excel\Transactions;
interface TransactionHandler
{
/**
* @param callable $callback
* @return mixed
*/
public function __invoke(callable $callback);
}
DbTransactionHandler.php 0000644 00000001176 15152066100 0011307 0 ustar 00 <?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);
}
}