1 | <?php |
||
11 | class SQLTable |
||
12 | { |
||
13 | protected $schemaManager ; |
||
14 | protected $collection; |
||
15 | protected $fields; |
||
16 | protected $columns = []; |
||
17 | protected $indexes = []; |
||
18 | protected $tmpIndexes = []; |
||
19 | protected static $columnDefaults = [ |
||
20 | 'name' => null, |
||
21 | 'type' => 'string', |
||
22 | 'type_info' => null, |
||
23 | 'maxLength' => 255, |
||
24 | 'default' => null, |
||
25 | 'index' => null, |
||
26 | 'index_type'=> null, |
||
27 | ]; |
||
28 | |||
29 | 3 | public function __construct($schemaManager, $collection, $fields) |
|
35 | |||
36 | 3 | public function createTable() |
|
43 | |||
44 | 3 | protected function buildColumns() |
|
45 | { |
||
46 | 3 | $this->columns[] = new Column( |
|
47 | 3 | 'id', |
|
48 | 3 | Type::getType('integer'), |
|
49 | 3 | ['unsigned' => true, 'autoincrement' => true] |
|
50 | ); |
||
51 | 3 | foreach ($this->fields as $field) { |
|
52 | 3 | $field = array_merge(self::$columnDefaults, $field); |
|
53 | 3 | $options = []; |
|
54 | 3 | if ($field['type'] === 'integer' && $field['type_info'] === 'unsigned') { |
|
55 | $options['unsigned'] = true; |
||
56 | } |
||
57 | 3 | $options['length'] = $field['maxLength']; |
|
58 | 3 | $options['default'] = $field['default']; |
|
59 | 3 | $this->columns[] = new Column($field['name'], Type::getType($field['type']), $options); |
|
60 | } |
||
61 | 3 | } |
|
62 | |||
63 | 3 | protected function buildIndexes() |
|
64 | { |
||
65 | 3 | $this->indexes[] = new Index($this->collection.'_PK', ['id'], false, true); |
|
66 | 3 | foreach ($this->fields as $field) { |
|
67 | 3 | $field = array_merge(self::$columnDefaults, $field); |
|
68 | 3 | if ($field['index'] !== null) { |
|
69 | 3 | if ($field['index_type'] === 'unique') { |
|
70 | 3 | $this->indexes[] = new Index( |
|
71 | 3 | $this->collection . '_' . $field['name'] . '_UNQ', |
|
72 | 3 | [$field['name']], |
|
73 | 3 | true, |
|
74 | 3 | false |
|
75 | ); |
||
76 | 3 | continue; |
|
77 | } |
||
78 | 3 | $this->tmpIndexes[] = $field['name']; |
|
79 | } |
||
80 | } |
||
81 | 3 | if (count($this->tmpIndexes)>0) { |
|
82 | 3 | $this->indexes[] = new Index( |
|
83 | 3 | $this->collection . '_IDX', |
|
84 | 3 | $this->tmpIndexes, |
|
85 | 3 | false, |
|
86 | 3 | false |
|
87 | ); |
||
88 | } |
||
89 | 3 | } |
|
90 | |||
91 | public function createOnlyIndexes() |
||
99 | } |
||
100 |
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.