Completed
Push — master ( d66083...956f09 )
by Ivan
15:05
created
src/schema/TableQuery.php 1 patch
Spacing   +269 added lines, -272 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
     protected array $order = [];
23 23
     protected array $group = [];
24 24
     protected array $having = [];
25
-    protected array $li_of = [0,0];
25
+    protected array $li_of = [0, 0];
26 26
     protected bool $li_mt = false;
27 27
     protected array $fields = [];
28 28
     protected array $withr = [];
@@ -39,11 +39,11 @@  discard block
 block discarded – undo
39 39
      * @param  Table|string   $table           the name or definition of the main table in the query
40 40
      * @param  bool           $findRelations   should the query builder try to find missing joins
41 41
      */
42
-    public function __construct(DBInterface $db, Table|string $table, bool $findRelations = false)
42
+    public function __construct(DBInterface $db, Table | string $table, bool $findRelations = false)
43 43
     {
44 44
         $this->db = $db;
45 45
         $this->findRelations = $findRelations;
46
-        $this->definition = $table instanceof Table ? $table : $this->db->definition((string)$table);
46
+        $this->definition = $table instanceof Table ? $table : $this->db->definition((string) $table);
47 47
         $primary = $this->definition->getPrimaryKey();
48 48
         $columns = $this->definition->getColumns();
49 49
         $this->pkey = count($primary) ? $primary : $columns;
@@ -67,27 +67,27 @@  discard block
 block discarded – undo
67 67
     {
68 68
         $column = explode('.', $column);
69 69
         if (count($column) === 1) {
70
-            $column = [ $this->definition->getFullName(), $column[0] ];
70
+            $column = [$this->definition->getFullName(), $column[0]];
71 71
             $col = $this->definition->getColumn($column[1]);
72 72
             if (!$col) {
73
-                throw new DBException('Invalid column name in main table: ' . $column[1]);
73
+                throw new DBException('Invalid column name in main table: '.$column[1]);
74 74
             }
75 75
         } elseif (count($column) === 2) {
76 76
             if ($column[0] === $this->definition->getName()) {
77 77
                 $col = $this->definition->getColumn($column[1]);
78 78
                 if (!$col) {
79
-                    throw new DBException('Invalid column name in main table: ' . $column[1]);
79
+                    throw new DBException('Invalid column name in main table: '.$column[1]);
80 80
                 }
81 81
             } else {
82 82
                 if ($this->definition->hasRelation($column[0])) {
83 83
                     $col = $this->definition->getRelation($column[0])?->table?->getColumn($column[1]);
84 84
                     if (!$col) {
85
-                        throw new DBException('Invalid column name in related table: ' . $column[1]);
85
+                        throw new DBException('Invalid column name in related table: '.$column[1]);
86 86
                     }
87 87
                 } elseif (isset($this->joins[$column[0]])) {
88 88
                     $col = $this->joins[$column[0]]->table->getColumn($column[1]);
89 89
                     if (!$col) {
90
-                        throw new DBException('Invalid column name in related table: ' . $column[1]);
90
+                        throw new DBException('Invalid column name in related table: '.$column[1]);
91 91
                     }
92 92
                 } else {
93 93
                     $col = null;
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
                             $path = $this->db->findRelation($this->definition->getName(), $column[0]);
107 107
                         }
108 108
                         if (!count($path)) {
109
-                            throw new DBException('Invalid foreign table / column name: ' . implode(',', $column));
109
+                            throw new DBException('Invalid foreign table / column name: '.implode(',', $column));
110 110
                         }
111 111
                         unset($path[0]);
112 112
                         $this->with(implode('.', $path), false);
@@ -119,26 +119,26 @@  discard block
 block discarded – undo
119 119
             if ($this->definition->hasRelation(implode('.', $column))) {
120 120
                 $this->with(implode('.', $column), false);
121 121
                 $col = $this->definition->getRelation(implode('.', $column))?->table?->getColumn($name);
122
-                $column = [ implode('.', $column), $name ];
122
+                $column = [implode('.', $column), $name];
123 123
             } else {
124 124
                 $this->with(implode('.', $column), false);
125 125
                 $table = $this->definition;
126 126
                 $table = array_reduce(
127 127
                     $column,
128
-                    function ($carry, $item) use (&$table) {
128
+                    function($carry, $item) use (&$table) {
129 129
                         $table = $table->getRelation($item)->table;
130 130
                         return $table;
131 131
                     }
132 132
                 );
133 133
                 $col = $table->getColumn($name);
134
-                $column = [ implode(static::SEP, $column), $name ];
134
+                $column = [implode(static::SEP, $column), $name];
135 135
             }
136 136
         }
137
-        return [ 'name' => implode('.', $column), 'data' => $col ];
137
+        return ['name' => implode('.', $column), 'data' => $col];
138 138
     }
139 139
     protected function normalizeValue(TableColumn $col, mixed $value): mixed
140 140
     {
141
-        $strict = (int)$this->db->driverOption('strict', 0) > 0;
141
+        $strict = (int) $this->db->driverOption('strict', 0) > 0;
142 142
         if ($value === null && $col->isNullable()) {
143 143
             return null;
144 144
         }
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
                     $temp = strtotime($value);
149 149
                     if (!$temp) {
150 150
                         if ($strict) {
151
-                            throw new DBException('Invalid value for date column: ' . $col->getName());
151
+                            throw new DBException('Invalid value for date column: '.$col->getName());
152 152
                         }
153 153
                         return null;
154 154
                     }
@@ -161,7 +161,7 @@  discard block
 block discarded – undo
161 161
                     return $value->format('Y-m-d');
162 162
                 }
163 163
                 if ($strict) {
164
-                    throw new DBException('Invalid value (unknown data type) for date column: ' . $col->getName());
164
+                    throw new DBException('Invalid value (unknown data type) for date column: '.$col->getName());
165 165
                 }
166 166
                 return $value;
167 167
             case 'datetime':
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
                     $temp = strtotime($value);
170 170
                     if (!$temp) {
171 171
                         if ($strict) {
172
-                            throw new DBException('Invalid value for datetime column: ' . $col->getName());
172
+                            throw new DBException('Invalid value for datetime column: '.$col->getName());
173 173
                         }
174 174
                         return null;
175 175
                     }
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
                     return $value->format('Y-m-d H:i:s');
183 183
                 }
184 184
                 if ($strict) {
185
-                    throw new DBException('Invalid value (unknown data type) for datetime column ' . $col->getName());
185
+                    throw new DBException('Invalid value (unknown data type) for datetime column '.$col->getName());
186 186
                 }
187 187
                 return $value;
188 188
             case 'enum':
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
                 if (is_int($value)) {
191 191
                     if (!isset($values[$value])) {
192 192
                         if ($strict) {
193
-                            throw new DBException('Invalid value (using integer) for enum: ' . $col->getName());
193
+                            throw new DBException('Invalid value (using integer) for enum: '.$col->getName());
194 194
                         }
195 195
                         return $value;
196 196
                     }
@@ -198,23 +198,23 @@  discard block
 block discarded – undo
198 198
                 }
199 199
                 if (!in_array($value, $col->getValues())) {
200 200
                     if ($strict) {
201
-                        throw new DBException('Invalid value for enum: ' . $col->getName());
201
+                        throw new DBException('Invalid value for enum: '.$col->getName());
202 202
                     }
203 203
                     return 0;
204 204
                 }
205 205
                 return $value;
206 206
             case 'int':
207
-                $temp = preg_replace('([^+\-0-9]+)', '', (string)$value);
208
-                return is_string($temp) ? (int)$temp : 0;
207
+                $temp = preg_replace('([^+\-0-9]+)', '', (string) $value);
208
+                return is_string($temp) ? (int) $temp : 0;
209 209
             case 'float':
210
-                $temp = preg_replace('([^+\-0-9.]+)', '', str_replace(',', '.', (string)$value));
211
-                return is_string($temp) ? (float)$temp : 0;
210
+                $temp = preg_replace('([^+\-0-9.]+)', '', str_replace(',', '.', (string) $value));
211
+                return is_string($temp) ? (float) $temp : 0;
212 212
             case 'text':
213 213
                 // check using strlen first, in order to avoid hitting mb_ functions which might be polyfilled
214 214
                 // because the polyfill is quite slow
215 215
                 if ($col->hasLength() && strlen($value) > $col->getLength() && mb_strlen($value) > $col->getLength()) {
216 216
                     if ($strict) {
217
-                        throw new DBException('Invalid value for text column: ' . $col->getName());
217
+                        throw new DBException('Invalid value for text column: '.$col->getName());
218 218
                     }
219 219
                     return mb_substr($value, 0, $col->getLength());
220 220
                 }
@@ -247,11 +247,11 @@  discard block
 block discarded – undo
247 247
                     $sqls[] = $temp[0];
248 248
                     $pars = array_merge($pars, $temp[1]);
249 249
                     unset($value[$k]);
250
-                } elseif (in_array($k, ['like','ilike','contains','icontains','ends','iends'])) {
250
+                } elseif (in_array($k, ['like', 'ilike', 'contains', 'icontains', 'ends', 'iends'])) {
251 251
                     if ($column->getBasicType() !== 'text') {
252 252
                         switch ($this->db->driverName()) {
253 253
                             case 'oracle':
254
-                                $name = 'CAST(' . $name . ' AS NVARCHAR(500))';
254
+                                $name = 'CAST('.$name.' AS NVARCHAR(500))';
255 255
                                 break;
256 256
                             case 'postgre':
257 257
                                 $name = $name.'::text';
@@ -266,25 +266,25 @@  discard block
 block discarded – undo
266 266
                     $sql = [];
267 267
                     $par = [];
268 268
                     foreach ($values as $v) {
269
-                        $v = str_replace(['%', '_'], ['\\%','\\_'], $v) . '%';
269
+                        $v = str_replace(['%', '_'], ['\\%', '\\_'], $v).'%';
270 270
                         if ($mode === 'contains' || $mode === 'icontains') {
271
-                            $v = '%' . $v;
271
+                            $v = '%'.$v;
272 272
                         }
273 273
                         if ($mode === 'ends' || $mode === 'iends') {
274
-                            $v = '%' . rtrim($v, '%');
274
+                            $v = '%'.rtrim($v, '%');
275 275
                         }
276 276
                         if ($mode === 'icontains' || $mode === 'ilike' || $mode === 'iends') {
277 277
                             $v = mb_strtoupper($v);
278
-                            $name = 'UPPER(' . $name . ')';
278
+                            $name = 'UPPER('.$name.')';
279 279
                         }
280
-                        $sql[] = $negate ? $name . ' NOT LIKE ?' : $name . ' LIKE ?';
280
+                        $sql[] = $negate ? $name.' NOT LIKE ?' : $name.' LIKE ?';
281 281
                         $par[] = $v;
282 282
                     }
283 283
                     if ($negate) {
284
-                        $sqls[] = '(' . implode(' AND ', $sql) . ')';
284
+                        $sqls[] = '('.implode(' AND ', $sql).')';
285 285
                         $pars = array_merge($pars, $par);
286 286
                     } else {
287
-                        $sqls[] = '(' . implode(' OR ', $sql) . ')';
287
+                        $sqls[] = '('.implode(' OR ', $sql).')';
288 288
                         $pars = array_merge($pars, $par);
289 289
                     }
290 290
                     unset($value[$k]);
@@ -292,38 +292,38 @@  discard block
 block discarded – undo
292 292
             }
293 293
             if (!count($value)) {
294 294
                 return [
295
-                    '(' . implode(' AND ', $sqls) . ')',
295
+                    '('.implode(' AND ', $sqls).')',
296 296
                     $pars
297 297
                 ];
298 298
             }
299 299
         }
300 300
         if (is_null($value)) {
301
-            $sqls[] = $negate ? $name . ' IS NOT NULL' : $name . ' IS NULL';
301
+            $sqls[] = $negate ? $name.' IS NOT NULL' : $name.' IS NULL';
302 302
             return [
303
-                '(' . implode(' AND ', $sqls) . ')',
303
+                '('.implode(' AND ', $sqls).')',
304 304
                 $pars
305 305
             ];
306 306
         }
307 307
         if (!is_array($value)) {
308
-            $sqls[] = $negate ? $name . ' <> ?' : $name . ' = ?';
308
+            $sqls[] = $negate ? $name.' <> ?' : $name.' = ?';
309 309
             $pars[] = $this->normalizeValue($column, $value);
310 310
             return [
311
-                '(' . implode(' AND ', $sqls) . ')',
311
+                '('.implode(' AND ', $sqls).')',
312 312
                 $pars
313 313
             ];
314 314
         }
315 315
         if (isset($value['beg']) && strlen($value['beg']) && (!isset($value['end']) || !strlen($value['end']))) {
316
-            $value = [ 'gte' => $value['beg'] ];
316
+            $value = ['gte' => $value['beg']];
317 317
         }
318 318
         if (isset($value['end']) && strlen($value['end']) && (!isset($value['beg']) || !strlen($value['beg']))) {
319
-            $value = [ 'lte' => $value['end'] ];
319
+            $value = ['lte' => $value['end']];
320 320
         }
321 321
         if (isset($value['beg']) && isset($value['end'])) {
322 322
             $sqls[] = $negate ? $name.' NOT BETWEEN ? AND ?' : $name.' BETWEEN ? AND ?';
323 323
             $pars[] = $this->normalizeValue($column, $value['beg']);
324 324
             $pars[] = $this->normalizeValue($column, $value['end']);
325 325
             return [
326
-                '(' . implode(' AND ', $sqls) . ')',
326
+                '('.implode(' AND ', $sqls).')',
327 327
                 $pars
328 328
             ];
329 329
         }
@@ -331,51 +331,51 @@  discard block
 block discarded – undo
331 331
             $sql = [];
332 332
             $par = [];
333 333
             if (isset($value['gt'])) {
334
-                $sql[] = $name. ' ' . ($negate ? '<=' : '>') . ' ?';
334
+                $sql[] = $name.' '.($negate ? '<=' : '>').' ?';
335 335
                 $par[] = $this->normalizeValue($column, $value['gt']);
336 336
             }
337 337
             if (isset($value['gte'])) {
338
-                $sql[] = $name. ' ' . ($negate ? '<' : '>=') . ' ?';
338
+                $sql[] = $name.' '.($negate ? '<' : '>=').' ?';
339 339
                 $par[] = $this->normalizeValue($column, $value['gte']);
340 340
             }
341 341
             if (isset($value['lt'])) {
342
-                $sql[] = $name. ' ' . ($negate ? '>=' : '<') . ' ?';
342
+                $sql[] = $name.' '.($negate ? '>=' : '<').' ?';
343 343
                 $par[] = $this->normalizeValue($column, $value['lt']);
344 344
             }
345 345
             if (isset($value['lte'])) {
346
-                $sql[] = $name. ' ' . ($negate ? '>' : '<=') . ' ?';
346
+                $sql[] = $name.' '.($negate ? '>' : '<=').' ?';
347 347
                 $par[] = $this->normalizeValue($column, $value['lte']);
348 348
             }
349
-            $sqls[] = '(' . implode(' AND ', $sql) . ')';
349
+            $sqls[] = '('.implode(' AND ', $sql).')';
350 350
             $pars = array_merge($pars, $par);
351 351
             return [
352
-                '(' . implode(' AND ', $sqls) . ')',
352
+                '('.implode(' AND ', $sqls).')',
353 353
                 $pars
354 354
             ];
355 355
         }
356 356
 
357
-        $value = array_values(array_map(function ($v) use ($column) {
357
+        $value = array_values(array_map(function($v) use ($column) {
358 358
             return $this->normalizeValue($column, $v);
359 359
         }, $value));
360 360
         if ($this->db->driverName() === 'oracle') {
361 361
             $sql = [];
362 362
             $par = [];
363 363
             for ($i = 0; $i < count($value); $i += 500) {
364
-                $sql[] = $negate ? $name . ' NOT IN (??)' : $name . ' IN (??)';
364
+                $sql[] = $negate ? $name.' NOT IN (??)' : $name.' IN (??)';
365 365
                 $par[] = array_slice($value, $i, 500);
366 366
             }
367
-            $sql = '(' . implode($negate ? ' AND ' : ' OR ', $sql) . ')';
367
+            $sql = '('.implode($negate ? ' AND ' : ' OR ', $sql).')';
368 368
             $sqls[] = $sql;
369 369
             $pars = array_merge($pars, $par);
370 370
             return [
371
-                '(' . implode(' AND ', $sqls) . ')',
371
+                '('.implode(' AND ', $sqls).')',
372 372
                 $pars
373 373
             ];
374 374
         }
375
-        $sqls[] = $negate ? $name . ' NOT IN (??)' : $name . ' IN (??)';
375
+        $sqls[] = $negate ? $name.' NOT IN (??)' : $name.' IN (??)';
376 376
         $pars[] = $value;
377 377
         return [
378
-            '(' . implode(' AND ', $sqls) . ')',
378
+            '('.implode(' AND ', $sqls).')',
379 379
             $pars
380 380
         ];
381 381
     }
@@ -407,7 +407,7 @@  discard block
 block discarded – undo
407 407
                 $par = array_merge($par, $temp[1]);
408 408
             }
409 409
         }
410
-        return $this->where('(' . implode(' OR ', $sql) . ')', $par);
410
+        return $this->where('('.implode(' OR ', $sql).')', $par);
411 411
     }
412 412
     /**
413 413
      * Filter the results matching all of the criteria
@@ -425,7 +425,7 @@  discard block
 block discarded – undo
425 425
                 $par = array_merge($par, $temp[1]);
426 426
             }
427 427
         }
428
-        return $this->where('(' . implode(' AND ', $sql) . ')', $par);
428
+        return $this->where('('.implode(' AND ', $sql).')', $par);
429 429
     }
430 430
     /**
431 431
      * Sort by a column
@@ -438,9 +438,9 @@  discard block
 block discarded – undo
438 438
         try {
439 439
             $this->getColumn($column);
440 440
         } catch (DBException $e) {
441
-            throw new DBException('Invalid sort column: ' . $column);
441
+            throw new DBException('Invalid sort column: '.$column);
442 442
         }
443
-        return $this->order($column . ' ' . ($desc ? 'DESC' : 'ASC'));
443
+        return $this->order($column.' '.($desc ? 'DESC' : 'ASC'));
444 444
     }
445 445
     /**
446 446
      * Group by a column (or columns)
@@ -450,7 +450,7 @@  discard block
 block discarded – undo
450 450
     public function group($column) : static
451 451
     {
452 452
         if (!is_array($column)) {
453
-            $column = [ $column ];
453
+            $column = [$column];
454 454
         }
455 455
         foreach ($column as $k => $v) {
456 456
             $column[$k] = $this->getColumn($v)['name'];
@@ -493,7 +493,7 @@  discard block
 block discarded – undo
493 493
         $this->order = [];
494 494
         $this->having = [];
495 495
         $this->aliases = [];
496
-        $this->li_of = [0,0];
496
+        $this->li_of = [0, 0];
497 497
         $this->li_mt = false;
498 498
         $this->qiterator = null;
499 499
         return $this;
@@ -507,7 +507,7 @@  discard block
 block discarded – undo
507 507
     public function groupBy(string $sql, array $params = []) : static
508 508
     {
509 509
         $this->qiterator = null;
510
-        $this->group = [ $sql, $params ];
510
+        $this->group = [$sql, $params];
511 511
         return $this;
512 512
     }
513 513
     /**
@@ -521,7 +521,7 @@  discard block
 block discarded – undo
521 521
     public function join($table, array $fields, ?string $name = null, bool $multiple = true)
522 522
     {
523 523
         $this->qiterator = null;
524
-        $table = $table instanceof Table ? $table : $this->db->definition((string)$table);
524
+        $table = $table instanceof Table ? $table : $this->db->definition((string) $table);
525 525
         $name = $name ?? $table->getName();
526 526
         if (isset($this->joins[$name]) || $this->definition->hasRelation($name)) {
527 527
             throw new DBException('Alias / table name already in use');
@@ -530,7 +530,7 @@  discard block
 block discarded – undo
530 530
         foreach ($fields as $k => $v) {
531 531
             $k = explode('.', $k, 2);
532 532
             $k = count($k) == 2 ? $k[1] : $k[0];
533
-            $this->joins[$name]->keymap[$this->getColumn($name . '.' . $k)['name']] = $this->getColumn($v)['name'];
533
+            $this->joins[$name]->keymap[$this->getColumn($name.'.'.$k)['name']] = $this->getColumn($v)['name'];
534 534
         }
535 535
         return $this;
536 536
     }
@@ -543,7 +543,7 @@  discard block
 block discarded – undo
543 543
     public function where(string $sql, array $params = []) : static
544 544
     {
545 545
         $this->qiterator = null;
546
-        $this->where[] = [ $sql, $params ];
546
+        $this->where[] = [$sql, $params];
547 547
         return $this;
548 548
     }
549 549
     /**
@@ -555,7 +555,7 @@  discard block
 block discarded – undo
555 555
     public function having(string $sql, array $params = []) : static
556 556
     {
557 557
         $this->qiterator = null;
558
-        $this->having[] = [ $sql, $params ];
558
+        $this->having[] = [$sql, $params];
559 559
         return $this;
560 560
     }
561 561
     /**
@@ -575,12 +575,12 @@  discard block
 block discarded – undo
575 575
                     throw new \Exception();
576 576
                 }
577 577
                 $name = $this->getColumn(trim($name))['name'];
578
-                $sql = $name . ' ' . (strpos(strtolower($sql), ' desc') ? 'DESC' : 'ASC');
578
+                $sql = $name.' '.(strpos(strtolower($sql), ' desc') ? 'DESC' : 'ASC');
579 579
             } catch (\Exception $e) {
580 580
                 $name = null;
581 581
             }
582 582
         }
583
-        $this->order = [ $sql, $params, $name ];
583
+        $this->order = [$sql, $params, $name];
584 584
         return $this;
585 585
     }
586 586
     /**
@@ -592,7 +592,7 @@  discard block
 block discarded – undo
592 592
     public function limit(int $limit, int $offset = 0, ?bool $limitOnMainTable = null) : static
593 593
     {
594 594
         $this->qiterator = null;
595
-        $this->li_of = [ $limit, $offset ];
595
+        $this->li_of = [$limit, $offset];
596 596
         if (isset($limitOnMainTable)) {
597 597
             $this->li_mt = $limitOnMainTable;
598 598
         }
@@ -611,9 +611,9 @@  discard block
 block discarded – undo
611 611
     {
612 612
         $aliases = [];
613 613
         $aliases_ext = [];
614
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
614
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
615 615
             // to bypass use: return $name;
616
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
616
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
617 617
             if (isset($aliases_ext[$name])) {
618 618
                 unset($aliases_ext[$name]);
619 619
             }
@@ -636,7 +636,7 @@  discard block
 block discarded – undo
636 636
         $h = $this->having;
637 637
         $o = $this->order;
638 638
         $g = $this->group;
639
-        $j = array_map(function ($v) {
639
+        $j = array_map(function($v) {
640 640
             return clone $v;
641 641
         }, $this->joins);
642 642
 
@@ -646,28 +646,28 @@  discard block
 block discarded – undo
646 646
                 continue;
647 647
             }
648 648
             foreach ($w as $kk => $v) {
649
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
649
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
650 650
                     $used_relations[] = $k;
651
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
651
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
652 652
                 }
653 653
             }
654 654
             foreach ($h as $kk => $v) {
655
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
655
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
656 656
                     $used_relations[] = $k;
657
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
657
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
658 658
                 }
659 659
             }
660
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
660
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
661 661
                 $used_relations[] = $k;
662
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
662
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
663 663
             }
664 664
             foreach ($j as $kk => $v) {
665 665
                 foreach ($v->keymap as $kkk => $vv) {
666
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
666
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
667 667
                         $used_relations[] = $k;
668 668
                         $j[$kk]->keymap[$kkk] = preg_replace(
669
-                            '(\b'.preg_quote($k . '.'). ')i',
670
-                            $getAlias($k) . '.',
669
+                            '(\b'.preg_quote($k.'.').')i',
670
+                            $getAlias($k).'.',
671 671
                             $vv
672 672
                         );
673 673
                     }
@@ -676,65 +676,65 @@  discard block
 block discarded – undo
676 676
         }
677 677
         foreach ($this->definition->getRelations() as $k => $v) {
678 678
             foreach ($w as $kk => $vv) {
679
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
680
-                    $relations[$k] = [ $v, $table ];
679
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
680
+                    $relations[$k] = [$v, $table];
681 681
                     $used_relations[] = $k;
682
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
682
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
683 683
                 }
684 684
             }
685
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
686
-                $relations[$k] = [ $v, $table ];
685
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
686
+                $relations[$k] = [$v, $table];
687 687
             }
688 688
             foreach ($h as $kk => $vv) {
689
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
690
-                    $relations[$k] = [ $v, $table ];
689
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
690
+                    $relations[$k] = [$v, $table];
691 691
                     $used_relations[] = $k;
692
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
692
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
693 693
                 }
694 694
             }
695
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
696
-                $relations[$k] = [ $v, $table ];
695
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
696
+                $relations[$k] = [$v, $table];
697 697
                 $used_relations[] = $k;
698
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
698
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
699 699
             }
700 700
             foreach ($j as $kk => $vv) {
701 701
                 foreach ($vv->keymap as $kkk => $vvv) {
702
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) {
703
-                        $relations[$k] = [ $v, $table ];
702
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) {
703
+                        $relations[$k] = [$v, $table];
704 704
                         $used_relations[] = $k;
705 705
                         $j[$kk]->keymap[$kkk] =
706
-                            preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv);
706
+                            preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv);
707 707
                     }
708 708
                 }
709 709
             }
710 710
         }
711 711
         foreach ($aliases_ext as $k => $alias) {
712 712
             foreach ($w as $kk => $v) {
713
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
714
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
713
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
714
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
715 715
                     $used_relations[] = $k;
716 716
                 }
717 717
             }
718 718
             foreach ($h as $kk => $v) {
719
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
720
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
719
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
720
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
721 721
                     $used_relations[] = $k;
722 722
                 }
723 723
             }
724
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
724
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
725 725
                 $used_relations[] = $k;
726 726
             }
727
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
728
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $g[0]);
727
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
728
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $g[0]);
729 729
                 $used_relations[] = $k;
730 730
             }
731 731
             foreach ($j as $kk => $v) {
732 732
                 foreach ($v->keymap as $kkk => $vv) {
733
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
733
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
734 734
                         $used_relations[] = $k;
735 735
                         $j[$kk]->keymap[$kkk] = preg_replace(
736
-                            '(\b'.preg_quote($k . '.'). ')i',
737
-                            $alias . '.',
736
+                            '(\b'.preg_quote($k.'.').')i',
737
+                            $alias.'.',
738 738
                             $vv
739 739
                         );
740 740
                     }
@@ -753,13 +753,13 @@  discard block
 block discarded – undo
753 753
                     foreach ($v->keymap as $kk => $vv) {
754 754
                         $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
755 755
                     }
756
-                    $sql .= implode(' AND ', $tmp) . ' ';
756
+                    $sql .= implode(' AND ', $tmp).' ';
757 757
                     $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($k).' ON ';
758 758
                     $tmp = [];
759 759
                     foreach ($v->pivot_keymap as $kk => $vv) {
760 760
                         $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' ';
761 761
                     }
762
-                    $sql .= implode(' AND ', $tmp) . ' ';
762
+                    $sql .= implode(' AND ', $tmp).' ';
763 763
                 } else {
764 764
                     $alias = $getAlias($k);
765 765
                     $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$alias.' ON ';
@@ -768,10 +768,10 @@  discard block
 block discarded – undo
768 768
                         $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
769 769
                     }
770 770
                     if ($v->sql) {
771
-                        $tmp[] = $v->sql . ' ';
771
+                        $tmp[] = $v->sql.' ';
772 772
                         $par = array_merge($par, $v->par ?? []);
773 773
                     }
774
-                    $sql .= implode(' AND ', $tmp) . ' ';
774
+                    $sql .= implode(' AND ', $tmp).' ';
775 775
                 }
776 776
             }
777 777
         }
@@ -780,12 +780,12 @@  discard block
 block discarded – undo
780 780
             if ($v->many) {
781 781
                 $jMany = true;
782 782
             }
783
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
783
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
784 784
             $tmp = [];
785 785
             foreach ($v->keymap as $kk => $vv) {
786 786
                 $tmp[] = $kk.' = '.$vv;
787 787
             }
788
-            $sql .= implode(' AND ', $tmp) . ' ';
788
+            $sql .= implode(' AND ', $tmp).' ';
789 789
         }
790 790
         if (!$jMany && !count($used_relations)) {
791 791
             $sql = str_replace('COUNT(DISTINCT ', 'COUNT(', $sql);
@@ -794,20 +794,20 @@  discard block
 block discarded – undo
794 794
             $sql .= 'WHERE ';
795 795
             $tmp = [];
796 796
             foreach ($w as $v) {
797
-                $tmp[] = '(' . $v[0] . ')';
797
+                $tmp[] = '('.$v[0].')';
798 798
                 $par = array_merge($par, $v[1]);
799 799
             }
800 800
             $sql .= implode(' AND ', $tmp).' ';
801 801
         }
802 802
         if (count($g)) {
803
-            $sql .= 'GROUP BY ' . $g[0] . ' ';
803
+            $sql .= 'GROUP BY '.$g[0].' ';
804 804
             $par = array_merge($par, $g[1]);
805 805
         }
806 806
         if (count($h)) {
807 807
             $sql .= 'HAVING ';
808 808
             $tmp = [];
809 809
             foreach ($h as $v) {
810
-                $tmp[] = '(' . $v[0] . ')';
810
+                $tmp[] = '('.$v[0].')';
811 811
                 $par = array_merge($par, $v[1]);
812 812
             }
813 813
             $sql .= implode(' AND ', $tmp).' ';
@@ -837,14 +837,14 @@  discard block
 block discarded – undo
837 837
                     } elseif (isset($this->joins[$table])) {
838 838
                         $cols = $this->joins[$table]->table->getColumns();
839 839
                     } else {
840
-                        throw new DBException('Invalid foreign table name: ' . $table);
840
+                        throw new DBException('Invalid foreign table name: '.$table);
841 841
                     }
842 842
                 } else {
843 843
                     array_pop($temp);
844 844
                     $this->with(implode('.', $temp));
845 845
                     $table = array_reduce(
846 846
                         $temp,
847
-                        function ($carry, $item) use (&$table) {
847
+                        function($carry, $item) use (&$table) {
848 848
                             return $table->getRelation($item)->table;
849 849
                         }
850 850
                     );
@@ -853,7 +853,7 @@  discard block
 block discarded – undo
853 853
                 }
854 854
                 unset($fields[$k]);
855 855
                 foreach ($cols as $col) {
856
-                    $fields[] = $table . '.' . $col;
856
+                    $fields[] = $table.'.'.$col;
857 857
                 }
858 858
             }
859 859
         }
@@ -888,9 +888,9 @@  discard block
 block discarded – undo
888 888
         }
889 889
         $aliases = [];
890 890
         $aliases_ext = [];
891
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
891
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
892 892
             // to bypass use: return $name;
893
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
893
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
894 894
             if (isset($aliases_ext[$name])) {
895 895
                 unset($aliases_ext[$name]);
896 896
             }
@@ -915,7 +915,7 @@  discard block
 block discarded – undo
915 915
         $h = $this->having;
916 916
         $o = $this->order;
917 917
         $g = $this->group;
918
-        $j = array_map(function ($v) {
918
+        $j = array_map(function($v) {
919 919
             return clone $v;
920 920
         }, $this->joins);
921 921
 
@@ -930,11 +930,10 @@  discard block
 block discarded – undo
930 930
             }
931 931
             $temp = [];
932 932
             foreach ($f as $kk => $field) {
933
-                if (strpos($field, $k . '.') === 0) {
934
-                    $f[$kk] = str_replace($k . '.', $getAlias($k) . '.', $field);
933
+                if (strpos($field, $k.'.') === 0) {
934
+                    $f[$kk] = str_replace($k.'.', $getAlias($k).'.', $field);
935 935
                     $nk = $this->aliasColumns && is_numeric($kk) ?
936
-                        $getAlias($k . static::SEP . str_replace($k . '.', '', $field)) :
937
-                        $kk;
936
+                        $getAlias($k.static::SEP.str_replace($k.'.', '', $field)) : $kk;
938 937
                     $temp[$nk] = $f[$kk];
939 938
                 } else {
940 939
                     $temp[$kk] = $field;
@@ -942,27 +941,27 @@  discard block
 block discarded – undo
942 941
             }
943 942
             $f = $temp;
944 943
             foreach ($w as $kk => $v) {
945
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
946
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
944
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
945
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
947 946
                 }
948 947
             }
949 948
             foreach ($h as $kk => $v) {
950
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
951
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
949
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
950
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
952 951
                 }
953 952
             }
954
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
955
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
953
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
954
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
956 955
             }
957
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
958
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
956
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
957
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
959 958
             }
960 959
             foreach ($j as $kk => $v) {
961 960
                 foreach ($v->keymap as $kkk => $vv) {
962
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
961
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
963 962
                         $j[$kk]->keymap[$kkk] = preg_replace(
964
-                            '(\b'.preg_quote($k . '.'). ')i',
965
-                            $getAlias($k) . '.',
963
+                            '(\b'.preg_quote($k.'.').')i',
964
+                            $getAlias($k).'.',
966 965
                             $vv
967 966
                         );
968 967
                     }
@@ -972,12 +971,11 @@  discard block
 block discarded – undo
972 971
         foreach ($this->definition->getRelations() as $k => $relation) {
973 972
             $temp = [];
974 973
             foreach ($f as $kk => $field) {
975
-                if (strpos($field, $k . '.') === 0) {
976
-                    $relations[$k] = [ $relation, $table ];
977
-                    $f[$kk] = str_replace($k . '.', $getAlias($k) . '.', $field);
974
+                if (strpos($field, $k.'.') === 0) {
975
+                    $relations[$k] = [$relation, $table];
976
+                    $f[$kk] = str_replace($k.'.', $getAlias($k).'.', $field);
978 977
                     $nk = $this->aliasColumns && is_numeric($kk) ?
979
-                        $getAlias($k . static::SEP . str_replace($k . '.', '', $field)) :
980
-                        $kk;
978
+                        $getAlias($k.static::SEP.str_replace($k.'.', '', $field)) : $kk;
981 979
                     $temp[$nk] = $f[$kk];
982 980
                 } else {
983 981
                     $temp[$kk] = $field;
@@ -985,32 +983,32 @@  discard block
 block discarded – undo
985 983
             }
986 984
             $f = $temp;
987 985
             foreach ($w as $kk => $v) {
988
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
989
-                    $relations[$k] = [ $relation, $table ];
990
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
986
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
987
+                    $relations[$k] = [$relation, $table];
988
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
991 989
                 }
992 990
             }
993 991
             foreach ($h as $kk => $v) {
994
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
995
-                    $relations[$k] = [ $relation, $table ];
996
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
992
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
993
+                    $relations[$k] = [$relation, $table];
994
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
997 995
                 }
998 996
             }
999
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1000
-                $relations[$k] = [ $relation, $table ];
1001
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
997
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
998
+                $relations[$k] = [$relation, $table];
999
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1002 1000
             }
1003
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
1004
-                $relations[$k] = [ $relation, $table ];
1005
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
1001
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
1002
+                $relations[$k] = [$relation, $table];
1003
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
1006 1004
             }
1007 1005
             foreach ($j as $kk => $v) {
1008 1006
                 foreach ($v->keymap as $kkk => $vv) {
1009
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1010
-                        $relations[$k] = [ $relation, $table ];
1007
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1008
+                        $relations[$k] = [$relation, $table];
1011 1009
                         $j[$kk]->keymap[$kkk] = preg_replace(
1012
-                            '(\b'.preg_quote($k . '.'). ')i',
1013
-                            $getAlias($k) . '.',
1010
+                            '(\b'.preg_quote($k.'.').')i',
1011
+                            $getAlias($k).'.',
1014 1012
                             $vv
1015 1013
                         );
1016 1014
                     }
@@ -1020,11 +1018,10 @@  discard block
 block discarded – undo
1020 1018
         foreach ($aliases_ext as $k => $alias) {
1021 1019
             $temp = [];
1022 1020
             foreach ($f as $kk => $field) {
1023
-                if (strpos($field, $k . '.') === 0) {
1024
-                    $f[$kk] = str_replace($k . '.', $alias . '.', $field);
1021
+                if (strpos($field, $k.'.') === 0) {
1022
+                    $f[$kk] = str_replace($k.'.', $alias.'.', $field);
1025 1023
                     $nk = $this->aliasColumns && is_numeric($kk) ?
1026
-                        $getAlias($k . static::SEP . str_replace($k . '.', '', $field)) :
1027
-                        $kk;
1024
+                        $getAlias($k.static::SEP.str_replace($k.'.', '', $field)) : $kk;
1028 1025
                     $temp[$nk] = $f[$kk];
1029 1026
                 } else {
1030 1027
                     $temp[$kk] = $field;
@@ -1032,27 +1029,27 @@  discard block
 block discarded – undo
1032 1029
             }
1033 1030
             $f = $temp;
1034 1031
             foreach ($w as $kk => $v) {
1035
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1036
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1032
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1033
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1037 1034
                 }
1038 1035
             }
1039 1036
             foreach ($h as $kk => $v) {
1040
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1041
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1037
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1038
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1042 1039
                 }
1043 1040
             }
1044
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1045
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $o[0]);
1041
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1042
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $o[0]);
1046 1043
             }
1047
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
1048
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $g[0]);
1044
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
1045
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $g[0]);
1049 1046
             }
1050 1047
             foreach ($j as $kk => $v) {
1051 1048
                 foreach ($v->keymap as $kkk => $vv) {
1052
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1049
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1053 1050
                         $j[$kk]->keymap[$kkk] = preg_replace(
1054
-                            '(\b'.preg_quote($k . '.'). ')i',
1055
-                            $alias . '.',
1051
+                            '(\b'.preg_quote($k.'.').')i',
1052
+                            $alias.'.',
1056 1053
                             $vv
1057 1054
                         );
1058 1055
                     }
@@ -1063,14 +1060,14 @@  discard block
 block discarded – undo
1063 1060
             if ($relation[2]) {
1064 1061
                 if (!$this->manualColumns) {
1065 1062
                     foreach ($relation[0]->table->getColumns() as $column) {
1066
-                        if (!in_array($getAlias($name) . '.' . $column, $f)) {
1067
-                            $f[$getAlias($name . static::SEP . $column)] = $getAlias($name) . '.' . $column;
1063
+                        if (!in_array($getAlias($name).'.'.$column, $f)) {
1064
+                            $f[$getAlias($name.static::SEP.$column)] = $getAlias($name).'.'.$column;
1068 1065
                         }
1069 1066
                     }
1070 1067
                 } else {
1071 1068
                     foreach ($relation[0]->table->getPrimaryKey() as $column) {
1072
-                        if (!in_array($getAlias($name) . '.' . $column, $f)) {
1073
-                            $f[$getAlias($name . static::SEP . $column)] = $getAlias($name) . '.' . $column;
1069
+                        if (!in_array($getAlias($name).'.'.$column, $f)) {
1070
+                            $f[$getAlias($name.static::SEP.$column)] = $getAlias($name).'.'.$column;
1074 1071
                         }
1075 1072
                     }
1076 1073
                 }
@@ -1078,7 +1075,7 @@  discard block
 block discarded – undo
1078 1075
         }
1079 1076
         $select = [];
1080 1077
         foreach ($f as $k => $field) {
1081
-            $select[] = $field . (!is_numeric($k) ? ' ' . $k : '');
1078
+            $select[] = $field.(!is_numeric($k) ? ' '.$k : '');
1082 1079
         }
1083 1080
         $sql = 'SELECT '.implode(', ', $select).' FROM '.$this->definition->getFullName().' ';
1084 1081
         $par = [];
@@ -1097,13 +1094,13 @@  discard block
 block discarded – undo
1097 1094
                 foreach ($v->keymap as $kk => $vv) {
1098 1095
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1099 1096
                 }
1100
-                $sql .= implode(' AND ', $tmp) . ' ';
1097
+                $sql .= implode(' AND ', $tmp).' ';
1101 1098
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($relation).' ON ';
1102 1099
                 $tmp = [];
1103 1100
                 foreach ($v->pivot_keymap as $kk => $vv) {
1104 1101
                     $tmp[] = $getAlias($relation).'.'.$vv.' = '.$alias.'.'.$kk.' ';
1105 1102
                 }
1106
-                $sql .= implode(' AND ', $tmp) . ' ';
1103
+                $sql .= implode(' AND ', $tmp).' ';
1107 1104
             } else {
1108 1105
                 $alias = $getAlias($relation);
1109 1106
 
@@ -1113,22 +1110,22 @@  discard block
 block discarded – undo
1113 1110
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1114 1111
                 }
1115 1112
                 if ($v->sql) {
1116
-                    $tmp[] = $v->sql . ' ';
1113
+                    $tmp[] = $v->sql.' ';
1117 1114
                     $par = array_merge($par, $v->par ?? []);
1118 1115
                 }
1119
-                $sql .= implode(' AND ', $tmp) . ' ';
1116
+                $sql .= implode(' AND ', $tmp).' ';
1120 1117
             }
1121 1118
         }
1122 1119
         foreach ($j as $k => $v) {
1123 1120
             if ($v->many) {
1124 1121
                 $many = true;
1125 1122
             }
1126
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1123
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1127 1124
             $tmp = [];
1128 1125
             foreach ($v->keymap as $kk => $vv) {
1129 1126
                 $tmp[] = $kk.' = '.$vv;
1130 1127
             }
1131
-            $sql .= implode(' AND ', $tmp) . ' ';
1128
+            $sql .= implode(' AND ', $tmp).' ';
1132 1129
         }
1133 1130
         if ($many && count($porder) && $this->li_mt) {
1134 1131
             $ids = $this->ids();
@@ -1136,9 +1133,9 @@  discard block
 block discarded – undo
1136 1133
                 if (count($porder) > 1) {
1137 1134
                     $pkw = [];
1138 1135
                     foreach ($porder as $name) {
1139
-                        $pkw[] = $name . ' = ?';
1136
+                        $pkw[] = $name.' = ?';
1140 1137
                     }
1141
-                    $pkw = '(' . implode(' AND ', $pkw) . ')';
1138
+                    $pkw = '('.implode(' AND ', $pkw).')';
1142 1139
                     $pkp = [];
1143 1140
                     foreach ($ids as $id) {
1144 1141
                         foreach ($id as $p) {
@@ -1150,60 +1147,60 @@  discard block
 block discarded – undo
1150 1147
                         $pkp
1151 1148
                     ];
1152 1149
                 } else {
1153
-                    $w[] = [ $porder[0] . ' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids ];
1150
+                    $w[] = [$porder[0].' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids];
1154 1151
                 }
1155 1152
             } else {
1156
-                $w[] = [ '1=0', [] ];
1153
+                $w[] = ['1=0', []];
1157 1154
             }
1158 1155
         }
1159 1156
         if (count($w)) {
1160 1157
             $sql .= 'WHERE ';
1161 1158
             $tmp = [];
1162 1159
             foreach ($w as $v) {
1163
-                $tmp[] = '(' . $v[0] . ')';
1160
+                $tmp[] = '('.$v[0].')';
1164 1161
                 $par = array_merge($par, $v[1]);
1165 1162
             }
1166 1163
             $sql .= implode(' AND ', $tmp).' ';
1167 1164
         }
1168 1165
         if (count($g)) {
1169
-            $sql .= 'GROUP BY ' . $g[0] . ' ';
1166
+            $sql .= 'GROUP BY '.$g[0].' ';
1170 1167
             $par = array_merge($par, $g[1]);
1171 1168
         }
1172 1169
         if (count($h)) {
1173 1170
             $sql .= 'HAVING ';
1174 1171
             $tmp = [];
1175 1172
             foreach ($h as $v) {
1176
-                $tmp[] = '(' . $v[0] . ')';
1173
+                $tmp[] = '('.$v[0].')';
1177 1174
                 $par = array_merge($par, $v[1]);
1178 1175
             }
1179 1176
             $sql .= implode(' AND ', $tmp).' ';
1180 1177
         }
1181 1178
         $ordered = false;
1182 1179
         if (count($o)) {
1183
-            $sql .= 'ORDER BY ' . $o[0] . ' ';
1180
+            $sql .= 'ORDER BY '.$o[0].' ';
1184 1181
             $par = array_merge($par, $o[1]);
1185 1182
             $ordered = true;
1186 1183
         }
1187 1184
         if (!count($g) && count($porder)) {
1188 1185
             $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC';
1189
-            $porder = array_map(function ($v) use ($pdir) {
1190
-                return $v . ' ' . $pdir;
1186
+            $porder = array_map(function($v) use ($pdir) {
1187
+                return $v.' '.$pdir;
1191 1188
             }, $porder);
1192
-            $sql .= ($ordered ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' ';
1189
+            $sql .= ($ordered ? ', ' : 'ORDER BY ').implode(', ', $porder).' ';
1193 1190
             $ordered = true;
1194 1191
         }
1195 1192
         foreach ($this->withr as $k => $v) {
1196 1193
             if (isset($v[3])) {
1197
-                $sql .= ($ordered ? ', ' : 'ORDER BY ') . $getAlias($k) . '.' . $v[3] . ' ' . ($v[4] ? 'DESC' : 'ASC');
1194
+                $sql .= ($ordered ? ', ' : 'ORDER BY ').$getAlias($k).'.'.$v[3].' '.($v[4] ? 'DESC' : 'ASC');
1198 1195
                 $ordered = true;
1199 1196
             }
1200 1197
         }
1201 1198
         if ((!$many || !$this->li_mt || !count($porder)) && $this->li_of[0]) {
1202 1199
             if ($this->db->driverName() === 'oracle') {
1203
-                if ((int)$this->db->driverOption('version', 0) >= 12) {
1204
-                    $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY';
1200
+                if ((int) $this->db->driverOption('version', 0) >= 12) {
1201
+                    $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY';
1205 1202
                 } else {
1206
-                    $f = array_map(function ($v) {
1203
+                    $f = array_map(function($v) {
1207 1204
                         $v = explode(' ', trim($v), 2);
1208 1205
                         if (count($v) === 2) {
1209 1206
                             return $v[1];
@@ -1211,16 +1208,16 @@  discard block
 block discarded – undo
1211 1208
                         $v = explode('.', $v[0], 2);
1212 1209
                         return count($v) === 2 ? $v[1] : $v[0];
1213 1210
                     }, $select);
1214
-                    $sql = "SELECT " . implode(', ', $f) . "
1211
+                    $sql = "SELECT ".implode(', ', $f)."
1215 1212
                             FROM (
1216 1213
                                 SELECT tbl__.*, rownum rnum__ FROM (
1217
-                                    " . $sql . "
1214
+                                    " . $sql."
1218 1215
                                 ) tbl__
1219
-                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . "
1216
+                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])."
1220 1217
                             ) WHERE rnum__ > " . $this->li_of[1];
1221 1218
                 }
1222 1219
             } else {
1223
-                $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1];
1220
+                $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1];
1224 1221
             }
1225 1222
         }
1226 1223
         return $this->qiterator = new TableQueryIterator(
@@ -1270,12 +1267,12 @@  discard block
 block discarded – undo
1270 1267
                 $ret[$k] = str_repeat(' ', 255);
1271 1268
                 $par[] = &$ret[$k];
1272 1269
             }
1273
-            $sql .= ' RETURNING ' . implode(',', $primary) .
1274
-                ' INTO ' . implode(',', array_fill(0, count($primary), '?'));
1270
+            $sql .= ' RETURNING '.implode(',', $primary).
1271
+                ' INTO '.implode(',', array_fill(0, count($primary), '?'));
1275 1272
             $this->db->query($sql, $par);
1276 1273
             return $ret;
1277 1274
         } elseif ($this->db->driverName() === 'postgre') {
1278
-            $sql .= ' RETURNING ' . implode(',', $primary);
1275
+            $sql .= ' RETURNING '.implode(',', $primary);
1279 1276
             return $this->db->one($sql, $par, false);
1280 1277
         } else {
1281 1278
             $ret = [];
@@ -1306,9 +1303,9 @@  discard block
 block discarded – undo
1306 1303
         }
1307 1304
         $sql = 'UPDATE '.$table.' SET ';
1308 1305
         $par = [];
1309
-        $sql .= implode(', ', array_map(function ($v) {
1310
-            return $v . ' = ?';
1311
-        }, array_keys($update))) . ' ';
1306
+        $sql .= implode(', ', array_map(function($v) {
1307
+            return $v.' = ?';
1308
+        }, array_keys($update))).' ';
1312 1309
         $par = array_merge($par, array_values($update));
1313 1310
         if (count($this->where)) {
1314 1311
             $sql .= 'WHERE ';
@@ -1317,7 +1314,7 @@  discard block
 block discarded – undo
1317 1314
                 $tmp[] = $v[0];
1318 1315
                 $par = array_merge($par, $v[1]);
1319 1316
             }
1320
-            $sql .= implode(' AND ', $tmp) . ' ';
1317
+            $sql .= implode(' AND ', $tmp).' ';
1321 1318
         }
1322 1319
         if (count($this->order)) {
1323 1320
             $sql .= $this->order[0];
@@ -1341,7 +1338,7 @@  discard block
 block discarded – undo
1341 1338
                 $tmp[] = $v[0];
1342 1339
                 $par = array_merge($par, $v[1]);
1343 1340
             }
1344
-            $sql .= implode(' AND ', $tmp) . ' ';
1341
+            $sql .= implode(' AND ', $tmp).' ';
1345 1342
         }
1346 1343
         if (count($this->order)) {
1347 1344
             $sql .= $this->order[0];
@@ -1372,15 +1369,15 @@  discard block
 block discarded – undo
1372 1369
             try {
1373 1370
                 $name = array_reduce(
1374 1371
                     $parts,
1375
-                    function ($carry, $item) use (&$table, $select) {
1372
+                    function($carry, $item) use (&$table, $select) {
1376 1373
                         if (!$table->hasRelation($item)) {
1377
-                            throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item);
1374
+                            throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item);
1378 1375
                         }
1379 1376
                         $relation = $table->getRelation($item);
1380 1377
                         if (!$relation) {
1381
-                            throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item);
1378
+                            throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item);
1382 1379
                         }
1383
-                        $name = $carry ? $carry . static::SEP . $item : $item;
1380
+                        $name = $carry ? $carry.static::SEP.$item : $item;
1384 1381
                         $this->withr[$name] = [
1385 1382
                             $relation,
1386 1383
                             $carry ?? $table->getName(),
@@ -1449,9 +1446,9 @@  discard block
 block discarded – undo
1449 1446
 
1450 1447
         $aliases = [];
1451 1448
         $aliases_ext = [];
1452
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
1449
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
1453 1450
             // to bypass use: return $name;
1454
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
1451
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
1455 1452
             if (isset($aliases_ext[$name])) {
1456 1453
                 unset($aliases_ext[$name]);
1457 1454
             }
@@ -1471,7 +1468,7 @@  discard block
 block discarded – undo
1471 1468
         $w = $this->where;
1472 1469
         $h = $this->having;
1473 1470
         $o = $this->order;
1474
-        $j = array_map(function ($v) {
1471
+        $j = array_map(function($v) {
1475 1472
             return clone $v;
1476 1473
         }, $this->joins);
1477 1474
 
@@ -1480,24 +1477,24 @@  discard block
 block discarded – undo
1480 1477
                 continue;
1481 1478
             }
1482 1479
             foreach ($w as $kk => $v) {
1483
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1484
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1480
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1481
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1485 1482
                 }
1486 1483
             }
1487 1484
             foreach ($h as $kk => $v) {
1488
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1489
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1485
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1486
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1490 1487
                 }
1491 1488
             }
1492
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1493
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1489
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1490
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1494 1491
             }
1495 1492
             foreach ($j as $kk => $v) {
1496 1493
                 foreach ($v->keymap as $kkk => $vv) {
1497
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1494
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1498 1495
                         $j[$kk]->keymap[$kkk] = preg_replace(
1499
-                            '(\b'.preg_quote($k . '.'). ')i',
1500
-                            $getAlias($k) . '.',
1496
+                            '(\b'.preg_quote($k.'.').')i',
1497
+                            $getAlias($k).'.',
1501 1498
                             $vv
1502 1499
                         );
1503 1500
                     }
@@ -1506,52 +1503,52 @@  discard block
 block discarded – undo
1506 1503
         }
1507 1504
         foreach ($this->definition->getRelations() as $k => $v) {
1508 1505
             foreach ($w as $kk => $vv) {
1509
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
1510
-                    $relations[$k] = [ $v, $table ];
1511
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
1506
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
1507
+                    $relations[$k] = [$v, $table];
1508
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
1512 1509
                 }
1513 1510
             }
1514
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1515
-                $relations[$k] = [ $v, $table ];
1516
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1517
-                $o[2] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[2]);
1511
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1512
+                $relations[$k] = [$v, $table];
1513
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1514
+                $o[2] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[2]);
1518 1515
             }
1519 1516
             foreach ($h as $kk => $vv) {
1520
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
1521
-                    $relations[$k] = [ $v, $table ];
1522
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
1517
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
1518
+                    $relations[$k] = [$v, $table];
1519
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
1523 1520
                 }
1524 1521
             }
1525 1522
             foreach ($j as $kk => $vv) {
1526 1523
                 foreach ($vv->keymap as $kkk => $vvv) {
1527
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) {
1528
-                        $relations[$k] = [ $v, $table ];
1524
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) {
1525
+                        $relations[$k] = [$v, $table];
1529 1526
                         $j[$kk]->keymap[$kkk] =
1530
-                            preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv);
1527
+                            preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv);
1531 1528
                     }
1532 1529
                 }
1533 1530
             }
1534 1531
         }
1535 1532
         foreach ($aliases_ext as $k => $alias) {
1536 1533
             foreach ($w as $kk => $v) {
1537
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1538
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1534
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1535
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1539 1536
                 }
1540 1537
             }
1541 1538
             foreach ($h as $kk => $v) {
1542
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1543
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1539
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1540
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1544 1541
                 }
1545 1542
             }
1546
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1547
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $o[0]);
1543
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1544
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $o[0]);
1548 1545
             }
1549 1546
             foreach ($j as $kk => $v) {
1550 1547
                 foreach ($v->keymap as $kkk => $vv) {
1551
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1548
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1552 1549
                         $j[$kk]->keymap[$kkk] = preg_replace(
1553
-                            '(\b'.preg_quote($k . '.'). ')i',
1554
-                            $alias . '.',
1550
+                            '(\b'.preg_quote($k.'.').')i',
1551
+                            $alias.'.',
1555 1552
                             $vv
1556 1553
                         );
1557 1554
                     }
@@ -1559,29 +1556,29 @@  discard block
 block discarded – undo
1559 1556
             }
1560 1557
         }
1561 1558
 
1562
-        $key = array_map(function ($v) use ($table) {
1563
-            return $table . '.' . $v;
1559
+        $key = array_map(function($v) use ($table) {
1560
+            return $table.'.'.$v;
1564 1561
         }, $this->pkey);
1565 1562
         $own = false;
1566 1563
         $dir = 'ASC';
1567 1564
         if (count($o)) {
1568 1565
             $dir = strpos($o[0], ' DESC') ? 'DESC' : 'ASC';
1569
-            $own = strpos($o[2], $table . '.') === 0;
1566
+            $own = strpos($o[2], $table.'.') === 0;
1570 1567
         }
1571 1568
 
1572 1569
         $dst = $key;
1573 1570
         if (count($o)) {
1574 1571
             if ($own) {
1575 1572
                 // if using own table - do not use max/min in order - that will prevent index usage
1576
-                $dst[] = $o[2] . ' orderbyfix___';
1573
+                $dst[] = $o[2].' orderbyfix___';
1577 1574
             } else {
1578
-                $dst[] = 'MAX(' . $o[2] . ') orderbyfix___';
1575
+                $dst[] = 'MAX('.$o[2].') orderbyfix___';
1579 1576
             }
1580 1577
         }
1581 1578
         $dst = array_unique($dst);
1582 1579
 
1583 1580
         $par = [];
1584
-        $sql  = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' ';
1581
+        $sql = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' ';
1585 1582
         foreach ($relations as $k => $v) {
1586 1583
             $table = $v[1] !== $this->definition->getName() ? $getAlias($v[1]) : $v[1];
1587 1584
             $v = $v[0];
@@ -1592,13 +1589,13 @@  discard block
 block discarded – undo
1592 1589
                 foreach ($v->keymap as $kk => $vv) {
1593 1590
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1594 1591
                 }
1595
-                $sql .= implode(' AND ', $tmp) . ' ';
1592
+                $sql .= implode(' AND ', $tmp).' ';
1596 1593
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($k).' ON ';
1597 1594
                 $tmp = [];
1598 1595
                 foreach ($v->pivot_keymap as $kk => $vv) {
1599 1596
                     $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' ';
1600 1597
                 }
1601
-                $sql .= implode(' AND ', $tmp) . ' ';
1598
+                $sql .= implode(' AND ', $tmp).' ';
1602 1599
             } else {
1603 1600
                 $alias = $getAlias($k);
1604 1601
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$alias.' ON ';
@@ -1607,37 +1604,37 @@  discard block
 block discarded – undo
1607 1604
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1608 1605
                 }
1609 1606
                 if ($v->sql) {
1610
-                    $tmp[] = $v->sql . ' ';
1607
+                    $tmp[] = $v->sql.' ';
1611 1608
                     $par = array_merge($par, $v->par ?? []);
1612 1609
                 }
1613
-                $sql .= implode(' AND ', $tmp) . ' ';
1610
+                $sql .= implode(' AND ', $tmp).' ';
1614 1611
             }
1615 1612
         }
1616 1613
         foreach ($j as $k => $v) {
1617
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1614
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1618 1615
             $tmp = [];
1619 1616
             foreach ($v->keymap as $kk => $vv) {
1620 1617
                 $tmp[] = $kk.' = '.$vv;
1621 1618
             }
1622
-            $sql .= implode(' AND ', $tmp) . ' ';
1619
+            $sql .= implode(' AND ', $tmp).' ';
1623 1620
         }
1624 1621
         if (count($w)) {
1625 1622
             $sql .= 'WHERE ';
1626 1623
             $tmp = [];
1627 1624
             foreach ($w as $v) {
1628
-                $tmp[] = '(' . $v[0] . ')';
1625
+                $tmp[] = '('.$v[0].')';
1629 1626
                 $par = array_merge($par, $v[1]);
1630 1627
             }
1631 1628
             $sql .= implode(' AND ', $tmp).' ';
1632 1629
         }
1633 1630
         if (!$own) {
1634
-            $sql .= 'GROUP BY ' . implode(', ', $key) . ' ';
1631
+            $sql .= 'GROUP BY '.implode(', ', $key).' ';
1635 1632
         }
1636 1633
         if (count($h)) {
1637 1634
             $sql .= 'HAVING ';
1638 1635
             $tmp = [];
1639 1636
             foreach ($h as $v) {
1640
-                $tmp[] = '(' . $v[0] . ')';
1637
+                $tmp[] = '('.$v[0].')';
1641 1638
                 $par = array_merge($par, $v[1]);
1642 1639
             }
1643 1640
             $sql .= implode(' AND ', $tmp).' ';
@@ -1645,38 +1642,38 @@  discard block
 block discarded – undo
1645 1642
         if (count($o)) {
1646 1643
             $sql .= 'ORDER BY ';
1647 1644
             if ($own) {
1648
-                $sql .= $o[2] . ' ' . $dir;
1645
+                $sql .= $o[2].' '.$dir;
1649 1646
             } else {
1650
-                $sql .= 'MAX('.$o[2].') ' . $dir;
1647
+                $sql .= 'MAX('.$o[2].') '.$dir;
1651 1648
             }
1652 1649
         }
1653 1650
         $porder = [];
1654 1651
         $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC';
1655 1652
         foreach ($this->definition->getPrimaryKey() as $field) {
1656
-            $porder[] = $this->getColumn($field)['name'] . ' ' . $pdir;
1653
+            $porder[] = $this->getColumn($field)['name'].' '.$pdir;
1657 1654
         }
1658 1655
         if (count($porder)) {
1659
-            $sql .= (count($o) ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' ';
1656
+            $sql .= (count($o) ? ', ' : 'ORDER BY ').implode(', ', $porder).' ';
1660 1657
         }
1661 1658
 
1662 1659
         if ($this->li_of[0]) {
1663 1660
             if ($this->db->driverName() === 'oracle') {
1664
-                if ((int)$this->db->driverOption('version', 12) >= 12) {
1665
-                    $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY';
1661
+                if ((int) $this->db->driverOption('version', 12) >= 12) {
1662
+                    $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY';
1666 1663
                 } else {
1667
-                    $sql = "SELECT " . implode(', ', $dst) . "
1664
+                    $sql = "SELECT ".implode(', ', $dst)."
1668 1665
                             FROM (
1669 1666
                                 SELECT tbl__.*, rownum rnum__ FROM (
1670
-                                    " . $sql . "
1667
+                                    " . $sql."
1671 1668
                                 ) tbl__
1672
-                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . "
1669
+                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])."
1673 1670
                             ) WHERE rnum__ > " . $this->li_of[1];
1674 1671
                 }
1675 1672
             } else {
1676
-                $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1];
1673
+                $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1];
1677 1674
             }
1678 1675
         }
1679
-        return array_map(function ($v) {
1676
+        return array_map(function($v) {
1680 1677
             if (array_key_exists('orderbyfix___', $v)) {
1681 1678
                 unset($v['orderbyfix___']);
1682 1679
             }
Please login to merge, or discard this patch.