| Total Complexity | 7 |
| Total Lines | 74 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 15 | abstract class Orm |
||
| 16 | { |
||
| 17 | use SingletonTrait { |
||
| 18 | __construct as finalConstruct; |
||
| 19 | } |
||
| 20 | |||
| 21 | use OrderTrait; |
||
|
|
|||
| 22 | use DebugTrait; |
||
| 23 | use ReadTrait; |
||
| 24 | use WriteTrait; |
||
| 25 | |||
| 26 | /** @var Connection */ |
||
| 27 | protected static $db; |
||
| 28 | |||
| 29 | /** @var string */ |
||
| 30 | protected $table; |
||
| 31 | |||
| 32 | /** @var Model */ |
||
| 33 | protected $model; |
||
| 34 | |||
| 35 | /** @var Select */ |
||
| 36 | private $query; |
||
| 37 | |||
| 38 | public function __construct() |
||
| 39 | { |
||
| 40 | $this->query = new Select($this); |
||
| 41 | } |
||
| 42 | |||
| 43 | /** @param Connection $db */ |
||
| 44 | public static function setConnection(Connection $db) |
||
| 45 | { |
||
| 46 | static::$db = $db; |
||
| 47 | } |
||
| 48 | |||
| 49 | /** @return Connection */ |
||
| 50 | public static function getConnection() |
||
| 53 | } |
||
| 54 | |||
| 55 | /** |
||
| 56 | * @param Model $model |
||
| 57 | * @return mixed[] |
||
| 58 | */ |
||
| 59 | abstract public function mapRow($model); |
||
| 60 | |||
| 61 | /** |
||
| 62 | * @param mixed[] $row |
||
| 63 | * @return Model |
||
| 64 | */ |
||
| 65 | abstract public function mapModel($row); |
||
| 66 | |||
| 67 | /** @return mixed[] */ |
||
| 68 | public function getRowValues() |
||
| 69 | { |
||
| 70 | return $this->mapRow($this->getModel()); |
||
| 71 | } |
||
| 72 | |||
| 73 | /** @return string */ |
||
| 74 | public function getTable() |
||
| 75 | { |
||
| 76 | return $this->table; |
||
| 77 | } |
||
| 78 | |||
| 79 | /** @return Model */ |
||
| 80 | public function getModel() |
||
| 83 | } |
||
| 84 | |||
| 85 | /** @return bool */ |
||
| 86 | public function modelExists() |
||
| 91 |