1: <?php
2:
3: namespace PHPixie;
4:
5: class ORM
6: {
7: 8: 9:
10: protected $builder;
11:
12: public function __construct($database, $configSlice, $wrappers = null)
13: {
14: $this->builder = $this->buildBuilder($database, $configSlice, $wrappers);
15: }
16:
17: public function repository($modelName)
18: {
19: return $this->databaseModel()->repository($modelName);
20: }
21:
22: public function query($modelName)
23: {
24: return $this->databaseModel()->query($modelName);
25: }
26:
27: public function createEntity($modelName, $data = null)
28: {
29: return $this->repository($modelName)->create($data);
30: }
31:
32: public function repositories()
33: {
34: return $this->builder->repositories();
35: }
36:
37: public function builder()
38: {
39: return $this->builder;
40: }
41:
42: protected function databaseModel()
43: {
44: return $this->builder->models()->database();
45: }
46:
47: protected function buildBuilder($database, $configSlice, $wrappers)
48: {
49: return new ORM\Builder($database, $configSlice, $wrappers);
50: }
51: }
52: