| @@ 25-92 (lines=68) @@ | ||
| 22 | use Surfnet\StepupMiddleware\ManagementBundle\Exception\InvalidArgumentException; |
|
| 23 | use Surfnet\StepupMiddleware\ManagementBundle\Exception\UnknownDBALConnectionException; |
|
| 24 | ||
| 25 | class DBALConnectionHelper |
|
| 26 | { |
|
| 27 | /** |
|
| 28 | * @var Connection[] |
|
| 29 | */ |
|
| 30 | private $connections; |
|
| 31 | ||
| 32 | /** |
|
| 33 | * @param Connection[] $connections |
|
| 34 | */ |
|
| 35 | public function __construct(array $connections) |
|
| 36 | { |
|
| 37 | foreach ($connections as $connection) { |
|
| 38 | if (!$connection instanceof Connection) { |
|
| 39 | throw InvalidArgumentException::invalidType('\Doctrine\DBAL\Connection', 'connection', $connection); |
|
| 40 | } |
|
| 41 | } |
|
| 42 | ||
| 43 | $this->connections = $connections; |
|
| 44 | } |
|
| 45 | ||
| 46 | /** |
|
| 47 | * Start transaction on each connection |
|
| 48 | */ |
|
| 49 | public function beginTransaction() |
|
| 50 | { |
|
| 51 | foreach ($this->connections as $connection) { |
|
| 52 | $connection->beginTransaction(); |
|
| 53 | } |
|
| 54 | } |
|
| 55 | ||
| 56 | /** |
|
| 57 | * Commit transaction on each connection |
|
| 58 | */ |
|
| 59 | public function commit() |
|
| 60 | { |
|
| 61 | foreach ($this->connections as $connection) { |
|
| 62 | $connection->commit(); |
|
| 63 | } |
|
| 64 | } |
|
| 65 | ||
| 66 | /** |
|
| 67 | * Roll back the transaction on each connection |
|
| 68 | */ |
|
| 69 | public function rollBack() |
|
| 70 | { |
|
| 71 | foreach ($this->connections as $connection) { |
|
| 72 | $connection->rollBack(); |
|
| 73 | } |
|
| 74 | } |
|
| 75 | ||
| 76 | /** |
|
| 77 | * @param string $connectionName |
|
| 78 | * @return Connection |
|
| 79 | */ |
|
| 80 | public function getConnection($connectionName) |
|
| 81 | { |
|
| 82 | if (!is_string($connectionName)) { |
|
| 83 | throw InvalidArgumentException::invalidType('string', 'connectionName', $connectionName); |
|
| 84 | } |
|
| 85 | ||
| 86 | if (!array_key_exists($connectionName, $this->connections)) { |
|
| 87 | throw new UnknownDBALConnectionException($connectionName); |
|
| 88 | } |
|
| 89 | ||
| 90 | return $this->connections[$connectionName]; |
|
| 91 | } |
|
| 92 | } |
|
| 93 | ||
| @@ 25-92 (lines=68) @@ | ||
| 22 | use Surfnet\StepupMiddleware\MiddlewareBundle\Exception\InvalidArgumentException; |
|
| 23 | use Surfnet\StepupMiddleware\MiddlewareBundle\Exception\UnknownDBALConnectionException; |
|
| 24 | ||
| 25 | class DBALConnectionHelper |
|
| 26 | { |
|
| 27 | /** |
|
| 28 | * @var Connection[] |
|
| 29 | */ |
|
| 30 | private $connections; |
|
| 31 | ||
| 32 | /** |
|
| 33 | * @param Connection[] $connections |
|
| 34 | */ |
|
| 35 | public function __construct(array $connections) |
|
| 36 | { |
|
| 37 | foreach ($connections as $connection) { |
|
| 38 | if (!$connection instanceof Connection) { |
|
| 39 | throw InvalidArgumentException::invalidType('\Doctrine\DBAL\Connection', 'connection', $connection); |
|
| 40 | } |
|
| 41 | } |
|
| 42 | ||
| 43 | $this->connections = $connections; |
|
| 44 | } |
|
| 45 | ||
| 46 | /** |
|
| 47 | * Start transaction on each connection |
|
| 48 | */ |
|
| 49 | public function beginTransaction() |
|
| 50 | { |
|
| 51 | foreach ($this->connections as $connection) { |
|
| 52 | $connection->beginTransaction(); |
|
| 53 | } |
|
| 54 | } |
|
| 55 | ||
| 56 | /** |
|
| 57 | * Commit transaction on each connection |
|
| 58 | */ |
|
| 59 | public function commit() |
|
| 60 | { |
|
| 61 | foreach ($this->connections as $connection) { |
|
| 62 | $connection->commit(); |
|
| 63 | } |
|
| 64 | } |
|
| 65 | ||
| 66 | /** |
|
| 67 | * Roll back the transaction on each connection |
|
| 68 | */ |
|
| 69 | public function rollBack() |
|
| 70 | { |
|
| 71 | foreach ($this->connections as $connection) { |
|
| 72 | $connection->rollBack(); |
|
| 73 | } |
|
| 74 | } |
|
| 75 | ||
| 76 | /** |
|
| 77 | * @param string $connectionName |
|
| 78 | * @return Connection |
|
| 79 | */ |
|
| 80 | public function getConnection($connectionName) |
|
| 81 | { |
|
| 82 | if (!is_string($connectionName)) { |
|
| 83 | throw InvalidArgumentException::invalidType('string', 'connectionName', $connectionName); |
|
| 84 | } |
|
| 85 | ||
| 86 | if (!array_key_exists($connectionName, $this->connections)) { |
|
| 87 | throw new UnknownDBALConnectionException($connectionName); |
|
| 88 | } |
|
| 89 | ||
| 90 | return $this->connections[$connectionName]; |
|
| 91 | } |
|
| 92 | } |
|
| 93 | ||