Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
6 / 6
Transactable
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
7 / 7
8
100.00% covered (success)
100.00%
6 / 6
 savepointTransaction
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
6 / 6
 beginTransaction
100.00% covered (success)
100.00%
1 / 1
1  
 
 commitTransaction
100.00% covered (success)
100.00%
1 / 1
1  
 
 rollbackTransaction
100.00% covered (success)
100.00%
1 / 1
1  
 
 inTransaction
100.00% covered (success)
100.00%
1 / 1
1  
 
 rollbackTransactionTo
100.00% covered (success)
100.00%
1 / 1
1  
 
 createTransactionSavepoint
100.00% covered (success)
100.00%
1 / 1
1  
 
<?php
namespace PHPixie\Database\Connection;
abstract class Transactable extends \PHPixie\Database\Connection
{
    protected $savepoint = 0;
    
    public function savepointTransaction($name = null)
    {
        if($name === null) {
            $name = 'savepoint_'.$this->savepoint;
            $this->savepoint++;
        }
        
        $this->createTransactionSavepoint($name);
        return $name;
    }
    
    public abstract function beginTransaction();
    public abstract function commitTransaction();
    public abstract function rollbackTransaction();
    public abstract function inTransaction();
    public abstract function rollbackTransactionTo($savepoint);
    
    protected abstract function createTransactionSavepoint($name);
}