1: <?php
2:
3: namespace PHPixie\ORM;
4:
5: class Drivers
6: {
7: 8: 9:
10: protected $ormBuilder;
11: protected $drivers = array();
12:
13: protected $classMap = array(
14: 'pdo' => '\PHPixie\ORM\Drivers\Driver\PDO',
15: 'mongo' => '\PHPixie\ORM\Drivers\Driver\Mongo',
16: );
17:
18: public function __construct($ormBuilder)
19: {
20: $this->ormBuilder = $ormBuilder;
21: }
22:
23: 24: 25: 26: 27:
28: public function get($name)
29: {
30: if (!array_key_exists($name, $this->drivers))
31: {
32: $this->drivers[$name] = $this->buildDriver($name);
33: }
34:
35: return $this->drivers[$name];
36: }
37:
38: protected function buildDriver($name) {
39:
40: $class = $this->classMap[$name];
41:
42: return new $class(
43: $this->ormBuilder->configs(),
44: $this->ormBuilder->conditions(),
45: $this->ormBuilder->data(),
46: $this->ormBuilder->database(),
47: $this->ormBuilder->models(),
48: $this->ormBuilder->maps(),
49: $this->ormBuilder->mappers(),
50: $this->ormBuilder->values()
51: );
52: }
53: }