Completed
Push — master ( 68c1f0...fa83ef )
by Ivan
13:54
created
src/schema/TableQuery.php 1 patch
Spacing   +267 added lines, -270 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
                     }
@@ -1061,17 +1058,17 @@  discard block
 block discarded – undo
1061 1058
         }
1062 1059
         $select = [];
1063 1060
         foreach ($f as $k => $field) {
1064
-            $select[] = $field . (!is_numeric($k) ? ' ' . $k : '');
1061
+            $select[] = $field.(!is_numeric($k) ? ' '.$k : '');
1065 1062
         }
1066 1063
         foreach ($this->withr as $name => $relation) {
1067 1064
             if ($relation[2]) {
1068 1065
                 if (!$this->manualColumns) {
1069 1066
                     foreach ($relation[0]->table->getColumns() as $column) {
1070
-                        $select[] = $getAlias($name) . '.' . $column . ' ' . $getAlias($name . static::SEP . $column);
1067
+                        $select[] = $getAlias($name).'.'.$column.' '.$getAlias($name.static::SEP.$column);
1071 1068
                     }
1072 1069
                 } else {
1073 1070
                     foreach ($relation[0]->table->getPrimaryKey() as $column) {
1074
-                        $select[] = $getAlias($name) . '.' . $column . ' ' . $getAlias($name . static::SEP . $column);
1071
+                        $select[] = $getAlias($name).'.'.$column.' '.$getAlias($name.static::SEP.$column);
1075 1072
                     }
1076 1073
                 }
1077 1074
             }
@@ -1093,13 +1090,13 @@  discard block
 block discarded – undo
1093 1090
                 foreach ($v->keymap as $kk => $vv) {
1094 1091
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1095 1092
                 }
1096
-                $sql .= implode(' AND ', $tmp) . ' ';
1093
+                $sql .= implode(' AND ', $tmp).' ';
1097 1094
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($relation).' ON ';
1098 1095
                 $tmp = [];
1099 1096
                 foreach ($v->pivot_keymap as $kk => $vv) {
1100 1097
                     $tmp[] = $getAlias($relation).'.'.$vv.' = '.$alias.'.'.$kk.' ';
1101 1098
                 }
1102
-                $sql .= implode(' AND ', $tmp) . ' ';
1099
+                $sql .= implode(' AND ', $tmp).' ';
1103 1100
             } else {
1104 1101
                 $alias = $getAlias($relation);
1105 1102
 
@@ -1109,22 +1106,22 @@  discard block
 block discarded – undo
1109 1106
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1110 1107
                 }
1111 1108
                 if ($v->sql) {
1112
-                    $tmp[] = $v->sql . ' ';
1109
+                    $tmp[] = $v->sql.' ';
1113 1110
                     $par = array_merge($par, $v->par ?? []);
1114 1111
                 }
1115
-                $sql .= implode(' AND ', $tmp) . ' ';
1112
+                $sql .= implode(' AND ', $tmp).' ';
1116 1113
             }
1117 1114
         }
1118 1115
         foreach ($j as $k => $v) {
1119 1116
             if ($v->many) {
1120 1117
                 $many = true;
1121 1118
             }
1122
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1119
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1123 1120
             $tmp = [];
1124 1121
             foreach ($v->keymap as $kk => $vv) {
1125 1122
                 $tmp[] = $kk.' = '.$vv;
1126 1123
             }
1127
-            $sql .= implode(' AND ', $tmp) . ' ';
1124
+            $sql .= implode(' AND ', $tmp).' ';
1128 1125
         }
1129 1126
         if ($many && count($porder) && $this->li_mt) {
1130 1127
             $ids = $this->ids();
@@ -1132,9 +1129,9 @@  discard block
 block discarded – undo
1132 1129
                 if (count($porder) > 1) {
1133 1130
                     $pkw = [];
1134 1131
                     foreach ($porder as $name) {
1135
-                        $pkw[] = $name . ' = ?';
1132
+                        $pkw[] = $name.' = ?';
1136 1133
                     }
1137
-                    $pkw = '(' . implode(' AND ', $pkw) . ')';
1134
+                    $pkw = '('.implode(' AND ', $pkw).')';
1138 1135
                     $pkp = [];
1139 1136
                     foreach ($ids as $id) {
1140 1137
                         foreach ($id as $p) {
@@ -1146,60 +1143,60 @@  discard block
 block discarded – undo
1146 1143
                         $pkp
1147 1144
                     ];
1148 1145
                 } else {
1149
-                    $w[] = [ $porder[0] . ' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids ];
1146
+                    $w[] = [$porder[0].' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids];
1150 1147
                 }
1151 1148
             } else {
1152
-                $w[] = [ '1=0', [] ];
1149
+                $w[] = ['1=0', []];
1153 1150
             }
1154 1151
         }
1155 1152
         if (count($w)) {
1156 1153
             $sql .= 'WHERE ';
1157 1154
             $tmp = [];
1158 1155
             foreach ($w as $v) {
1159
-                $tmp[] = '(' . $v[0] . ')';
1156
+                $tmp[] = '('.$v[0].')';
1160 1157
                 $par = array_merge($par, $v[1]);
1161 1158
             }
1162 1159
             $sql .= implode(' AND ', $tmp).' ';
1163 1160
         }
1164 1161
         if (count($g)) {
1165
-            $sql .= 'GROUP BY ' . $g[0] . ' ';
1162
+            $sql .= 'GROUP BY '.$g[0].' ';
1166 1163
             $par = array_merge($par, $g[1]);
1167 1164
         }
1168 1165
         if (count($h)) {
1169 1166
             $sql .= 'HAVING ';
1170 1167
             $tmp = [];
1171 1168
             foreach ($h as $v) {
1172
-                $tmp[] = '(' . $v[0] . ')';
1169
+                $tmp[] = '('.$v[0].')';
1173 1170
                 $par = array_merge($par, $v[1]);
1174 1171
             }
1175 1172
             $sql .= implode(' AND ', $tmp).' ';
1176 1173
         }
1177 1174
         $ordered = false;
1178 1175
         if (count($o)) {
1179
-            $sql .= 'ORDER BY ' . $o[0] . ' ';
1176
+            $sql .= 'ORDER BY '.$o[0].' ';
1180 1177
             $par = array_merge($par, $o[1]);
1181 1178
             $ordered = true;
1182 1179
         }
1183 1180
         if (!count($g) && count($porder)) {
1184 1181
             $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC';
1185
-            $porder = array_map(function ($v) use ($pdir) {
1186
-                return $v . ' ' . $pdir;
1182
+            $porder = array_map(function($v) use ($pdir) {
1183
+                return $v.' '.$pdir;
1187 1184
             }, $porder);
1188
-            $sql .= ($ordered ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' ';
1185
+            $sql .= ($ordered ? ', ' : 'ORDER BY ').implode(', ', $porder).' ';
1189 1186
             $ordered = true;
1190 1187
         }
1191 1188
         foreach ($this->withr as $k => $v) {
1192 1189
             if (isset($v[3])) {
1193
-                $sql .= ($ordered ? ', ' : 'ORDER BY ') . $getAlias($k) . '.' . $v[3] . ' ' . ($v[4] ? 'DESC' : 'ASC');
1190
+                $sql .= ($ordered ? ', ' : 'ORDER BY ').$getAlias($k).'.'.$v[3].' '.($v[4] ? 'DESC' : 'ASC');
1194 1191
                 $ordered = true;
1195 1192
             }
1196 1193
         }
1197 1194
         if ((!$many || !$this->li_mt || !count($porder)) && $this->li_of[0]) {
1198 1195
             if ($this->db->driverName() === 'oracle') {
1199
-                if ((int)$this->db->driverOption('version', 0) >= 12) {
1200
-                    $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY';
1196
+                if ((int) $this->db->driverOption('version', 0) >= 12) {
1197
+                    $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY';
1201 1198
                 } else {
1202
-                    $f = array_map(function ($v) {
1199
+                    $f = array_map(function($v) {
1203 1200
                         $v = explode(' ', trim($v), 2);
1204 1201
                         if (count($v) === 2) {
1205 1202
                             return $v[1];
@@ -1207,16 +1204,16 @@  discard block
 block discarded – undo
1207 1204
                         $v = explode('.', $v[0], 2);
1208 1205
                         return count($v) === 2 ? $v[1] : $v[0];
1209 1206
                     }, $select);
1210
-                    $sql = "SELECT " . implode(', ', $f) . "
1207
+                    $sql = "SELECT ".implode(', ', $f)."
1211 1208
                             FROM (
1212 1209
                                 SELECT tbl__.*, rownum rnum__ FROM (
1213
-                                    " . $sql . "
1210
+                                    " . $sql."
1214 1211
                                 ) tbl__
1215
-                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . "
1212
+                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])."
1216 1213
                             ) WHERE rnum__ > " . $this->li_of[1];
1217 1214
                 }
1218 1215
             } else {
1219
-                $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1];
1216
+                $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1];
1220 1217
             }
1221 1218
         }
1222 1219
         return $this->qiterator = new TableQueryIterator(
@@ -1266,12 +1263,12 @@  discard block
 block discarded – undo
1266 1263
                 $ret[$k] = str_repeat(' ', 255);
1267 1264
                 $par[] = &$ret[$k];
1268 1265
             }
1269
-            $sql .= ' RETURNING ' . implode(',', $primary) .
1270
-                ' INTO ' . implode(',', array_fill(0, count($primary), '?'));
1266
+            $sql .= ' RETURNING '.implode(',', $primary).
1267
+                ' INTO '.implode(',', array_fill(0, count($primary), '?'));
1271 1268
             $this->db->query($sql, $par);
1272 1269
             return $ret;
1273 1270
         } elseif ($this->db->driverName() === 'postgre') {
1274
-            $sql .= ' RETURNING ' . implode(',', $primary);
1271
+            $sql .= ' RETURNING '.implode(',', $primary);
1275 1272
             return $this->db->one($sql, $par, false);
1276 1273
         } else {
1277 1274
             $ret = [];
@@ -1302,9 +1299,9 @@  discard block
 block discarded – undo
1302 1299
         }
1303 1300
         $sql = 'UPDATE '.$table.' SET ';
1304 1301
         $par = [];
1305
-        $sql .= implode(', ', array_map(function ($v) {
1306
-            return $v . ' = ?';
1307
-        }, array_keys($update))) . ' ';
1302
+        $sql .= implode(', ', array_map(function($v) {
1303
+            return $v.' = ?';
1304
+        }, array_keys($update))).' ';
1308 1305
         $par = array_merge($par, array_values($update));
1309 1306
         if (count($this->where)) {
1310 1307
             $sql .= 'WHERE ';
@@ -1313,7 +1310,7 @@  discard block
 block discarded – undo
1313 1310
                 $tmp[] = $v[0];
1314 1311
                 $par = array_merge($par, $v[1]);
1315 1312
             }
1316
-            $sql .= implode(' AND ', $tmp) . ' ';
1313
+            $sql .= implode(' AND ', $tmp).' ';
1317 1314
         }
1318 1315
         if (count($this->order)) {
1319 1316
             $sql .= $this->order[0];
@@ -1337,7 +1334,7 @@  discard block
 block discarded – undo
1337 1334
                 $tmp[] = $v[0];
1338 1335
                 $par = array_merge($par, $v[1]);
1339 1336
             }
1340
-            $sql .= implode(' AND ', $tmp) . ' ';
1337
+            $sql .= implode(' AND ', $tmp).' ';
1341 1338
         }
1342 1339
         if (count($this->order)) {
1343 1340
             $sql .= $this->order[0];
@@ -1368,15 +1365,15 @@  discard block
 block discarded – undo
1368 1365
             try {
1369 1366
                 $name = array_reduce(
1370 1367
                     $parts,
1371
-                    function ($carry, $item) use (&$table, $select) {
1368
+                    function($carry, $item) use (&$table, $select) {
1372 1369
                         if (!$table->hasRelation($item)) {
1373
-                            throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item);
1370
+                            throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item);
1374 1371
                         }
1375 1372
                         $relation = $table->getRelation($item);
1376 1373
                         if (!$relation) {
1377
-                            throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item);
1374
+                            throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item);
1378 1375
                         }
1379
-                        $name = $carry ? $carry . static::SEP . $item : $item;
1376
+                        $name = $carry ? $carry.static::SEP.$item : $item;
1380 1377
                         $this->withr[$name] = [
1381 1378
                             $relation,
1382 1379
                             $carry ?? $table->getName(),
@@ -1445,9 +1442,9 @@  discard block
 block discarded – undo
1445 1442
 
1446 1443
         $aliases = [];
1447 1444
         $aliases_ext = [];
1448
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
1445
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
1449 1446
             // to bypass use: return $name;
1450
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
1447
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
1451 1448
             if (isset($aliases_ext[$name])) {
1452 1449
                 unset($aliases_ext[$name]);
1453 1450
             }
@@ -1467,7 +1464,7 @@  discard block
 block discarded – undo
1467 1464
         $w = $this->where;
1468 1465
         $h = $this->having;
1469 1466
         $o = $this->order;
1470
-        $j = array_map(function ($v) {
1467
+        $j = array_map(function($v) {
1471 1468
             return clone $v;
1472 1469
         }, $this->joins);
1473 1470
 
@@ -1476,24 +1473,24 @@  discard block
 block discarded – undo
1476 1473
                 continue;
1477 1474
             }
1478 1475
             foreach ($w as $kk => $v) {
1479
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1480
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1476
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1477
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1481 1478
                 }
1482 1479
             }
1483 1480
             foreach ($h as $kk => $v) {
1484
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1485
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1481
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1482
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1486 1483
                 }
1487 1484
             }
1488
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1489
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1485
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1486
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1490 1487
             }
1491 1488
             foreach ($j as $kk => $v) {
1492 1489
                 foreach ($v->keymap as $kkk => $vv) {
1493
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1490
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1494 1491
                         $j[$kk]->keymap[$kkk] = preg_replace(
1495
-                            '(\b'.preg_quote($k . '.'). ')i',
1496
-                            $getAlias($k) . '.',
1492
+                            '(\b'.preg_quote($k.'.').')i',
1493
+                            $getAlias($k).'.',
1497 1494
                             $vv
1498 1495
                         );
1499 1496
                     }
@@ -1502,52 +1499,52 @@  discard block
 block discarded – undo
1502 1499
         }
1503 1500
         foreach ($this->definition->getRelations() as $k => $v) {
1504 1501
             foreach ($w as $kk => $vv) {
1505
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
1506
-                    $relations[$k] = [ $v, $table ];
1507
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
1502
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
1503
+                    $relations[$k] = [$v, $table];
1504
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
1508 1505
                 }
1509 1506
             }
1510
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1511
-                $relations[$k] = [ $v, $table ];
1512
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1513
-                $o[2] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[2]);
1507
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1508
+                $relations[$k] = [$v, $table];
1509
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1510
+                $o[2] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[2]);
1514 1511
             }
1515 1512
             foreach ($h as $kk => $vv) {
1516
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
1517
-                    $relations[$k] = [ $v, $table ];
1518
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
1513
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
1514
+                    $relations[$k] = [$v, $table];
1515
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
1519 1516
                 }
1520 1517
             }
1521 1518
             foreach ($j as $kk => $vv) {
1522 1519
                 foreach ($vv->keymap as $kkk => $vvv) {
1523
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) {
1524
-                        $relations[$k] = [ $v, $table ];
1520
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) {
1521
+                        $relations[$k] = [$v, $table];
1525 1522
                         $j[$kk]->keymap[$kkk] =
1526
-                            preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv);
1523
+                            preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv);
1527 1524
                     }
1528 1525
                 }
1529 1526
             }
1530 1527
         }
1531 1528
         foreach ($aliases_ext as $k => $alias) {
1532 1529
             foreach ($w as $kk => $v) {
1533
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1534
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1530
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1531
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1535 1532
                 }
1536 1533
             }
1537 1534
             foreach ($h as $kk => $v) {
1538
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1539
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1535
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1536
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1540 1537
                 }
1541 1538
             }
1542
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1543
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $o[0]);
1539
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1540
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $o[0]);
1544 1541
             }
1545 1542
             foreach ($j as $kk => $v) {
1546 1543
                 foreach ($v->keymap as $kkk => $vv) {
1547
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1544
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1548 1545
                         $j[$kk]->keymap[$kkk] = preg_replace(
1549
-                            '(\b'.preg_quote($k . '.'). ')i',
1550
-                            $alias . '.',
1546
+                            '(\b'.preg_quote($k.'.').')i',
1547
+                            $alias.'.',
1551 1548
                             $vv
1552 1549
                         );
1553 1550
                     }
@@ -1555,29 +1552,29 @@  discard block
 block discarded – undo
1555 1552
             }
1556 1553
         }
1557 1554
 
1558
-        $key = array_map(function ($v) use ($table) {
1559
-            return $table . '.' . $v;
1555
+        $key = array_map(function($v) use ($table) {
1556
+            return $table.'.'.$v;
1560 1557
         }, $this->pkey);
1561 1558
         $own = false;
1562 1559
         $dir = 'ASC';
1563 1560
         if (count($o)) {
1564 1561
             $dir = strpos($o[0], ' DESC') ? 'DESC' : 'ASC';
1565
-            $own = strpos($o[2], $table . '.') === 0;
1562
+            $own = strpos($o[2], $table.'.') === 0;
1566 1563
         }
1567 1564
 
1568 1565
         $dst = $key;
1569 1566
         if (count($o)) {
1570 1567
             if ($own) {
1571 1568
                 // if using own table - do not use max/min in order - that will prevent index usage
1572
-                $dst[] = $o[2] . ' orderbyfix___';
1569
+                $dst[] = $o[2].' orderbyfix___';
1573 1570
             } else {
1574
-                $dst[] = 'MAX(' . $o[2] . ') orderbyfix___';
1571
+                $dst[] = 'MAX('.$o[2].') orderbyfix___';
1575 1572
             }
1576 1573
         }
1577 1574
         $dst = array_unique($dst);
1578 1575
 
1579 1576
         $par = [];
1580
-        $sql  = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' ';
1577
+        $sql = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' ';
1581 1578
         foreach ($relations as $k => $v) {
1582 1579
             $table = $v[1] !== $this->definition->getName() ? $getAlias($v[1]) : $v[1];
1583 1580
             $v = $v[0];
@@ -1588,13 +1585,13 @@  discard block
 block discarded – undo
1588 1585
                 foreach ($v->keymap as $kk => $vv) {
1589 1586
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1590 1587
                 }
1591
-                $sql .= implode(' AND ', $tmp) . ' ';
1588
+                $sql .= implode(' AND ', $tmp).' ';
1592 1589
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($k).' ON ';
1593 1590
                 $tmp = [];
1594 1591
                 foreach ($v->pivot_keymap as $kk => $vv) {
1595 1592
                     $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' ';
1596 1593
                 }
1597
-                $sql .= implode(' AND ', $tmp) . ' ';
1594
+                $sql .= implode(' AND ', $tmp).' ';
1598 1595
             } else {
1599 1596
                 $alias = $getAlias($k);
1600 1597
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$alias.' ON ';
@@ -1603,37 +1600,37 @@  discard block
 block discarded – undo
1603 1600
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1604 1601
                 }
1605 1602
                 if ($v->sql) {
1606
-                    $tmp[] = $v->sql . ' ';
1603
+                    $tmp[] = $v->sql.' ';
1607 1604
                     $par = array_merge($par, $v->par ?? []);
1608 1605
                 }
1609
-                $sql .= implode(' AND ', $tmp) . ' ';
1606
+                $sql .= implode(' AND ', $tmp).' ';
1610 1607
             }
1611 1608
         }
1612 1609
         foreach ($j as $k => $v) {
1613
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1610
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1614 1611
             $tmp = [];
1615 1612
             foreach ($v->keymap as $kk => $vv) {
1616 1613
                 $tmp[] = $kk.' = '.$vv;
1617 1614
             }
1618
-            $sql .= implode(' AND ', $tmp) . ' ';
1615
+            $sql .= implode(' AND ', $tmp).' ';
1619 1616
         }
1620 1617
         if (count($w)) {
1621 1618
             $sql .= 'WHERE ';
1622 1619
             $tmp = [];
1623 1620
             foreach ($w as $v) {
1624
-                $tmp[] = '(' . $v[0] . ')';
1621
+                $tmp[] = '('.$v[0].')';
1625 1622
                 $par = array_merge($par, $v[1]);
1626 1623
             }
1627 1624
             $sql .= implode(' AND ', $tmp).' ';
1628 1625
         }
1629 1626
         if (!$own) {
1630
-            $sql .= 'GROUP BY ' . implode(', ', $key) . ' ';
1627
+            $sql .= 'GROUP BY '.implode(', ', $key).' ';
1631 1628
         }
1632 1629
         if (count($h)) {
1633 1630
             $sql .= 'HAVING ';
1634 1631
             $tmp = [];
1635 1632
             foreach ($h as $v) {
1636
-                $tmp[] = '(' . $v[0] . ')';
1633
+                $tmp[] = '('.$v[0].')';
1637 1634
                 $par = array_merge($par, $v[1]);
1638 1635
             }
1639 1636
             $sql .= implode(' AND ', $tmp).' ';
@@ -1641,38 +1638,38 @@  discard block
 block discarded – undo
1641 1638
         if (count($o)) {
1642 1639
             $sql .= 'ORDER BY ';
1643 1640
             if ($own) {
1644
-                $sql .= $o[2] . ' ' . $dir;
1641
+                $sql .= $o[2].' '.$dir;
1645 1642
             } else {
1646
-                $sql .= 'MAX('.$o[2].') ' . $dir;
1643
+                $sql .= 'MAX('.$o[2].') '.$dir;
1647 1644
             }
1648 1645
         }
1649 1646
         $porder = [];
1650 1647
         $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC';
1651 1648
         foreach ($this->definition->getPrimaryKey() as $field) {
1652
-            $porder[] = $this->getColumn($field)['name'] . ' ' . $pdir;
1649
+            $porder[] = $this->getColumn($field)['name'].' '.$pdir;
1653 1650
         }
1654 1651
         if (count($porder)) {
1655
-            $sql .= (count($o) ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' ';
1652
+            $sql .= (count($o) ? ', ' : 'ORDER BY ').implode(', ', $porder).' ';
1656 1653
         }
1657 1654
 
1658 1655
         if ($this->li_of[0]) {
1659 1656
             if ($this->db->driverName() === 'oracle') {
1660
-                if ((int)$this->db->driverOption('version', 12) >= 12) {
1661
-                    $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY';
1657
+                if ((int) $this->db->driverOption('version', 12) >= 12) {
1658
+                    $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY';
1662 1659
                 } else {
1663
-                    $sql = "SELECT " . implode(', ', $dst) . "
1660
+                    $sql = "SELECT ".implode(', ', $dst)."
1664 1661
                             FROM (
1665 1662
                                 SELECT tbl__.*, rownum rnum__ FROM (
1666
-                                    " . $sql . "
1663
+                                    " . $sql."
1667 1664
                                 ) tbl__
1668
-                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . "
1665
+                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])."
1669 1666
                             ) WHERE rnum__ > " . $this->li_of[1];
1670 1667
                 }
1671 1668
             } else {
1672
-                $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1];
1669
+                $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1];
1673 1670
             }
1674 1671
         }
1675
-        return array_map(function ($v) {
1672
+        return array_map(function($v) {
1676 1673
             if (array_key_exists('orderbyfix___', $v)) {
1677 1674
                 unset($v['orderbyfix___']);
1678 1675
             }
Please login to merge, or discard this patch.