Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
13 / 13 |
Driver | |
100.00% |
1 / 1 |
|
100.00% |
10 / 10 |
12 | |
100.00% |
13 / 13 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
conditions | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
parser | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
query | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
queryBuilder | |
100.00% |
1 / 1 |
1 | ||||||
buildConditions | |
100.00% |
1 / 1 |
1 | ||||||
buildConnection | |
100.00% |
1 / 1 |
1 | ||||||
buildParserInstance | |
100.00% |
1 / 1 |
1 | ||||||
buildQuery | |
100.00% |
1 / 1 |
1 | ||||||
result | |
100.00% |
1 / 1 |
1 |
<?php | |
namespace PHPixie\Database; | |
abstract class Driver | |
{ | |
protected $database; | |
protected $conditions; | |
protected $parsers = array(); | |
protected $connections = array(); | |
public function __construct($database) | |
{ | |
$this->database = $database; | |
} | |
public function conditions() | |
{ | |
if ($this->conditions === null) | |
$this->conditions = $this->buildConditions(); | |
return $this->conditions; | |
} | |
public function parser($connectionName) | |
{ | |
if (!isset($this->parsers[$connectionName])) | |
$this->parsers[$connectionName] = $this->buildParserInstance($connectionName); | |
return $this->parsers[$connectionName]; | |
} | |
public function query($type = 'select', $connectionName = 'default') | |
{ | |
$connection = $this->database->get($connectionName); | |
$config = $connection->config(); | |
$parser = $this->parser($connectionName); | |
$builder = $this->queryBuilder(); | |
return $this->buildQuery($type, $connection, $parser, $builder); | |
} | |
abstract public function queryBuilder(); | |
abstract public function buildConditions(); | |
abstract public function buildConnection($name, $config); | |
abstract public function buildParserInstance($connectionName); | |
abstract public function buildQuery($type, $connection, $parser, $builder); | |
abstract public function result($cursor); | |
} |