1: <?php
2:
3: namespace PHPixie\ORM\Plans;
4:
5: class Transaction
6: {
7: public function begin($connections)
8: {
9: foreach($this->getTransactable($connections) as $connection)
10: $connection->beginTransaction();
11: }
12:
13: public function commit($connections)
14: {
15: foreach($this->getTransactable($connections) as $connection)
16: $connection->commitTransaction();
17: }
18:
19: public function rollback($connections)
20: {
21: foreach($this->getTransactable($connections) as $connection)
22: $connection->rollbackTransaction();
23: }
24:
25: protected function getTransactable($connections)
26: {
27: $transactable = array();
28: foreach($connections as $connection)
29: if ($connection instanceof \PHPixie\Database\Connection\Transactable)
30: $transactable[] = $connection;
31:
32: return $transactable;
33: }
34: }
35: