Completed
Push — master ( ed4c66...879aa0 )
by Ivan
12:25
created
src/schema/TableQuery.php 1 patch
Spacing   +275 added lines, -278 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,29 +198,29 @@  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
                 if (!is_scalar($value)) {
214 214
                     $value = json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
215 215
                 }
216 216
                 if (!is_string($value)) {
217
-                    $value = (string)$value;
217
+                    $value = (string) $value;
218 218
                 }
219 219
                 // check using strlen first, in order to avoid hitting mb_ functions which might be polyfilled
220 220
                 // because the polyfill is quite slow
221 221
                 if ($col->hasLength() && strlen($value) > $col->getLength() && mb_strlen($value) > $col->getLength()) {
222 222
                     if ($strict) {
223
-                        throw new DBException('Invalid value for text column: ' . $col->getName());
223
+                        throw new DBException('Invalid value for text column: '.$col->getName());
224 224
                     }
225 225
                     return mb_substr($value, 0, $col->getLength());
226 226
                 }
@@ -253,11 +253,11 @@  discard block
 block discarded – undo
253 253
                     $sqls[] = $temp[0];
254 254
                     $pars = array_merge($pars, $temp[1]);
255 255
                     unset($value[$k]);
256
-                } elseif (in_array($k, ['like','ilike','contains','icontains','ends','iends'])) {
256
+                } elseif (in_array($k, ['like', 'ilike', 'contains', 'icontains', 'ends', 'iends'])) {
257 257
                     if ($column->getBasicType() !== 'text') {
258 258
                         switch ($this->db->driverName()) {
259 259
                             case 'oracle':
260
-                                $name = 'CAST(' . $name . ' AS NVARCHAR(500))';
260
+                                $name = 'CAST('.$name.' AS NVARCHAR(500))';
261 261
                                 break;
262 262
                             case 'postgre':
263 263
                                 $name = $name.'::text';
@@ -272,25 +272,25 @@  discard block
 block discarded – undo
272 272
                     $sql = [];
273 273
                     $par = [];
274 274
                     foreach ($values as $v) {
275
-                        $v = str_replace(['%', '_'], ['\\%','\\_'], $v) . '%';
275
+                        $v = str_replace(['%', '_'], ['\\%', '\\_'], $v).'%';
276 276
                         if ($mode === 'contains' || $mode === 'icontains') {
277
-                            $v = '%' . $v;
277
+                            $v = '%'.$v;
278 278
                         }
279 279
                         if ($mode === 'ends' || $mode === 'iends') {
280
-                            $v = '%' . rtrim($v, '%');
280
+                            $v = '%'.rtrim($v, '%');
281 281
                         }
282 282
                         if ($mode === 'icontains' || $mode === 'ilike' || $mode === 'iends') {
283 283
                             $v = mb_strtoupper($v);
284
-                            $name = 'UPPER(' . $name . ')';
284
+                            $name = 'UPPER('.$name.')';
285 285
                         }
286
-                        $sql[] = $negate ? $name . ' NOT LIKE ?' : $name . ' LIKE ?';
286
+                        $sql[] = $negate ? $name.' NOT LIKE ?' : $name.' LIKE ?';
287 287
                         $par[] = $v;
288 288
                     }
289 289
                     if ($negate) {
290
-                        $sqls[] = '(' . implode(' AND ', $sql) . ')';
290
+                        $sqls[] = '('.implode(' AND ', $sql).')';
291 291
                         $pars = array_merge($pars, $par);
292 292
                     } else {
293
-                        $sqls[] = '(' . implode(' OR ', $sql) . ')';
293
+                        $sqls[] = '('.implode(' OR ', $sql).')';
294 294
                         $pars = array_merge($pars, $par);
295 295
                     }
296 296
                     unset($value[$k]);
@@ -298,38 +298,38 @@  discard block
 block discarded – undo
298 298
             }
299 299
             if (!count($value)) {
300 300
                 return [
301
-                    '(' . implode(' AND ', $sqls) . ')',
301
+                    '('.implode(' AND ', $sqls).')',
302 302
                     $pars
303 303
                 ];
304 304
             }
305 305
         }
306 306
         if (is_null($value)) {
307
-            $sqls[] = $negate ? $name . ' IS NOT NULL' : $name . ' IS NULL';
307
+            $sqls[] = $negate ? $name.' IS NOT NULL' : $name.' IS NULL';
308 308
             return [
309
-                '(' . implode(' AND ', $sqls) . ')',
309
+                '('.implode(' AND ', $sqls).')',
310 310
                 $pars
311 311
             ];
312 312
         }
313 313
         if (!is_array($value)) {
314
-            $sqls[] = $negate ? $name . ' <> ?' : $name . ' = ?';
314
+            $sqls[] = $negate ? $name.' <> ?' : $name.' = ?';
315 315
             $pars[] = $this->normalizeValue($column, $value);
316 316
             return [
317
-                '(' . implode(' AND ', $sqls) . ')',
317
+                '('.implode(' AND ', $sqls).')',
318 318
                 $pars
319 319
             ];
320 320
         }
321 321
         if (isset($value['beg']) && strlen($value['beg']) && (!isset($value['end']) || !strlen($value['end']))) {
322
-            $value = [ 'gte' => $value['beg'] ];
322
+            $value = ['gte' => $value['beg']];
323 323
         }
324 324
         if (isset($value['end']) && strlen($value['end']) && (!isset($value['beg']) || !strlen($value['beg']))) {
325
-            $value = [ 'lte' => $value['end'] ];
325
+            $value = ['lte' => $value['end']];
326 326
         }
327 327
         if (isset($value['beg']) && isset($value['end'])) {
328 328
             $sqls[] = $negate ? $name.' NOT BETWEEN ? AND ?' : $name.' BETWEEN ? AND ?';
329 329
             $pars[] = $this->normalizeValue($column, $value['beg']);
330 330
             $pars[] = $this->normalizeValue($column, $value['end']);
331 331
             return [
332
-                '(' . implode(' AND ', $sqls) . ')',
332
+                '('.implode(' AND ', $sqls).')',
333 333
                 $pars
334 334
             ];
335 335
         }
@@ -337,51 +337,51 @@  discard block
 block discarded – undo
337 337
             $sql = [];
338 338
             $par = [];
339 339
             if (isset($value['gt'])) {
340
-                $sql[] = $name. ' ' . ($negate ? '<=' : '>') . ' ?';
340
+                $sql[] = $name.' '.($negate ? '<=' : '>').' ?';
341 341
                 $par[] = $this->normalizeValue($column, $value['gt']);
342 342
             }
343 343
             if (isset($value['gte'])) {
344
-                $sql[] = $name. ' ' . ($negate ? '<' : '>=') . ' ?';
344
+                $sql[] = $name.' '.($negate ? '<' : '>=').' ?';
345 345
                 $par[] = $this->normalizeValue($column, $value['gte']);
346 346
             }
347 347
             if (isset($value['lt'])) {
348
-                $sql[] = $name. ' ' . ($negate ? '>=' : '<') . ' ?';
348
+                $sql[] = $name.' '.($negate ? '>=' : '<').' ?';
349 349
                 $par[] = $this->normalizeValue($column, $value['lt']);
350 350
             }
351 351
             if (isset($value['lte'])) {
352
-                $sql[] = $name. ' ' . ($negate ? '>' : '<=') . ' ?';
352
+                $sql[] = $name.' '.($negate ? '>' : '<=').' ?';
353 353
                 $par[] = $this->normalizeValue($column, $value['lte']);
354 354
             }
355
-            $sqls[] = '(' . implode(' AND ', $sql) . ')';
355
+            $sqls[] = '('.implode(' AND ', $sql).')';
356 356
             $pars = array_merge($pars, $par);
357 357
             return [
358
-                '(' . implode(' AND ', $sqls) . ')',
358
+                '('.implode(' AND ', $sqls).')',
359 359
                 $pars
360 360
             ];
361 361
         }
362 362
 
363
-        $value = array_values(array_map(function ($v) use ($column) {
363
+        $value = array_values(array_map(function($v) use ($column) {
364 364
             return $this->normalizeValue($column, $v);
365 365
         }, $value));
366 366
         if ($this->db->driverName() === 'oracle') {
367 367
             $sql = [];
368 368
             $par = [];
369 369
             for ($i = 0; $i < count($value); $i += 500) {
370
-                $sql[] = $negate ? $name . ' NOT IN (??)' : $name . ' IN (??)';
370
+                $sql[] = $negate ? $name.' NOT IN (??)' : $name.' IN (??)';
371 371
                 $par[] = array_slice($value, $i, 500);
372 372
             }
373
-            $sql = '(' . implode($negate ? ' AND ' : ' OR ', $sql) . ')';
373
+            $sql = '('.implode($negate ? ' AND ' : ' OR ', $sql).')';
374 374
             $sqls[] = $sql;
375 375
             $pars = array_merge($pars, $par);
376 376
             return [
377
-                '(' . implode(' AND ', $sqls) . ')',
377
+                '('.implode(' AND ', $sqls).')',
378 378
                 $pars
379 379
             ];
380 380
         }
381
-        $sqls[] = $negate ? $name . ' NOT IN (??)' : $name . ' IN (??)';
381
+        $sqls[] = $negate ? $name.' NOT IN (??)' : $name.' IN (??)';
382 382
         $pars[] = $value;
383 383
         return [
384
-            '(' . implode(' AND ', $sqls) . ')',
384
+            '('.implode(' AND ', $sqls).')',
385 385
             $pars
386 386
         ];
387 387
     }
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
                 $par = array_merge($par, $temp[1]);
414 414
             }
415 415
         }
416
-        return $this->where('(' . implode(' OR ', $sql) . ')', $par);
416
+        return $this->where('('.implode(' OR ', $sql).')', $par);
417 417
     }
418 418
     /**
419 419
      * Filter the results matching all of the criteria
@@ -431,7 +431,7 @@  discard block
 block discarded – undo
431 431
                 $par = array_merge($par, $temp[1]);
432 432
             }
433 433
         }
434
-        return $this->where('(' . implode(' AND ', $sql) . ')', $par);
434
+        return $this->where('('.implode(' AND ', $sql).')', $par);
435 435
     }
436 436
     /**
437 437
      * Sort by a column
@@ -444,9 +444,9 @@  discard block
 block discarded – undo
444 444
         try {
445 445
             $this->getColumn($column);
446 446
         } catch (DBException $e) {
447
-            throw new DBException('Invalid sort column: ' . $column);
447
+            throw new DBException('Invalid sort column: '.$column);
448 448
         }
449
-        return $this->order($column . ' ' . ($desc ? 'DESC' : 'ASC'));
449
+        return $this->order($column.' '.($desc ? 'DESC' : 'ASC'));
450 450
     }
451 451
     /**
452 452
      * Group by a column (or columns)
@@ -456,7 +456,7 @@  discard block
 block discarded – undo
456 456
     public function group($column) : static
457 457
     {
458 458
         if (!is_array($column)) {
459
-            $column = [ $column ];
459
+            $column = [$column];
460 460
         }
461 461
         foreach ($column as $k => $v) {
462 462
             $column[$k] = $this->getColumn($v)['name'];
@@ -499,7 +499,7 @@  discard block
 block discarded – undo
499 499
         $this->order = [];
500 500
         $this->having = [];
501 501
         $this->aliases = [];
502
-        $this->li_of = [0,0];
502
+        $this->li_of = [0, 0];
503 503
         $this->li_mt = false;
504 504
         $this->qiterator = null;
505 505
         return $this;
@@ -513,7 +513,7 @@  discard block
 block discarded – undo
513 513
     public function groupBy(string $sql, array $params = []) : static
514 514
     {
515 515
         $this->qiterator = null;
516
-        $this->group = [ $sql, $params ];
516
+        $this->group = [$sql, $params];
517 517
         return $this;
518 518
     }
519 519
     /**
@@ -527,7 +527,7 @@  discard block
 block discarded – undo
527 527
     public function join($table, array $fields, ?string $name = null, bool $multiple = true)
528 528
     {
529 529
         $this->qiterator = null;
530
-        $table = $table instanceof Table ? $table : $this->db->definition((string)$table);
530
+        $table = $table instanceof Table ? $table : $this->db->definition((string) $table);
531 531
         $name = $name ?? $table->getName();
532 532
         if (isset($this->joins[$name]) || $this->definition->hasRelation($name)) {
533 533
             throw new DBException('Alias / table name already in use');
@@ -536,7 +536,7 @@  discard block
 block discarded – undo
536 536
         foreach ($fields as $k => $v) {
537 537
             $k = explode('.', $k, 2);
538 538
             $k = count($k) == 2 ? $k[1] : $k[0];
539
-            $this->joins[$name]->keymap[$this->getColumn($name . '.' . $k)['name']] = $this->getColumn($v)['name'];
539
+            $this->joins[$name]->keymap[$this->getColumn($name.'.'.$k)['name']] = $this->getColumn($v)['name'];
540 540
         }
541 541
         return $this;
542 542
     }
@@ -549,7 +549,7 @@  discard block
 block discarded – undo
549 549
     public function where(string $sql, array $params = []) : static
550 550
     {
551 551
         $this->qiterator = null;
552
-        $this->where[] = [ $sql, $params ];
552
+        $this->where[] = [$sql, $params];
553 553
         return $this;
554 554
     }
555 555
     /**
@@ -561,7 +561,7 @@  discard block
 block discarded – undo
561 561
     public function having(string $sql, array $params = []) : static
562 562
     {
563 563
         $this->qiterator = null;
564
-        $this->having[] = [ $sql, $params ];
564
+        $this->having[] = [$sql, $params];
565 565
         return $this;
566 566
     }
567 567
     /**
@@ -581,12 +581,12 @@  discard block
 block discarded – undo
581 581
                     throw new \Exception();
582 582
                 }
583 583
                 $name = $this->getColumn(trim($name))['name'];
584
-                $sql = $name . ' ' . (strpos(strtolower($sql), ' desc') ? 'DESC' : 'ASC');
584
+                $sql = $name.' '.(strpos(strtolower($sql), ' desc') ? 'DESC' : 'ASC');
585 585
             } catch (\Exception $e) {
586 586
                 $name = null;
587 587
             }
588 588
         }
589
-        $this->order = [ $sql, $params, $name ];
589
+        $this->order = [$sql, $params, $name];
590 590
         return $this;
591 591
     }
592 592
     /**
@@ -598,7 +598,7 @@  discard block
 block discarded – undo
598 598
     public function limit(int $limit, int $offset = 0, ?bool $limitOnMainTable = null) : static
599 599
     {
600 600
         $this->qiterator = null;
601
-        $this->li_of = [ $limit, $offset ];
601
+        $this->li_of = [$limit, $offset];
602 602
         if (isset($limitOnMainTable)) {
603 603
             $this->li_mt = $limitOnMainTable;
604 604
         }
@@ -617,9 +617,9 @@  discard block
 block discarded – undo
617 617
     {
618 618
         $aliases = [];
619 619
         $aliases_ext = [];
620
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
620
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
621 621
             // to bypass use: return $name;
622
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
622
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
623 623
             if (isset($aliases_ext[$name])) {
624 624
                 unset($aliases_ext[$name]);
625 625
             }
@@ -642,7 +642,7 @@  discard block
 block discarded – undo
642 642
         $h = $this->having;
643 643
         $o = $this->order;
644 644
         $g = $this->group;
645
-        $j = array_map(function ($v) {
645
+        $j = array_map(function($v) {
646 646
             return clone $v;
647 647
         }, $this->joins);
648 648
 
@@ -652,28 +652,28 @@  discard block
 block discarded – undo
652 652
                 continue;
653 653
             }
654 654
             foreach ($w 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
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
657
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
658 658
                 }
659 659
             }
660 660
             foreach ($h as $kk => $v) {
661
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
661
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
662 662
                     $used_relations[] = $k;
663
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
663
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
664 664
                 }
665 665
             }
666
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
666
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
667 667
                 $used_relations[] = $k;
668
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
668
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
669 669
             }
670 670
             foreach ($j as $kk => $v) {
671 671
                 foreach ($v->keymap as $kkk => $vv) {
672
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
672
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
673 673
                         $used_relations[] = $k;
674 674
                         $j[$kk]->keymap[$kkk] = preg_replace(
675
-                            '(\b'.preg_quote($k . '.'). ')i',
676
-                            $getAlias($k) . '.',
675
+                            '(\b'.preg_quote($k.'.').')i',
676
+                            $getAlias($k).'.',
677 677
                             $vv
678 678
                         );
679 679
                     }
@@ -682,65 +682,65 @@  discard block
 block discarded – undo
682 682
         }
683 683
         foreach ($this->definition->getRelations() as $k => $v) {
684 684
             foreach ($w as $kk => $vv) {
685
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
686
-                    $relations[$k] = [ $v, $table ];
685
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
686
+                    $relations[$k] = [$v, $table];
687 687
                     $used_relations[] = $k;
688
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
688
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
689 689
                 }
690 690
             }
691
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
692
-                $relations[$k] = [ $v, $table ];
691
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
692
+                $relations[$k] = [$v, $table];
693 693
             }
694 694
             foreach ($h as $kk => $vv) {
695
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
696
-                    $relations[$k] = [ $v, $table ];
695
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
696
+                    $relations[$k] = [$v, $table];
697 697
                     $used_relations[] = $k;
698
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
698
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
699 699
                 }
700 700
             }
701
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
702
-                $relations[$k] = [ $v, $table ];
701
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
702
+                $relations[$k] = [$v, $table];
703 703
                 $used_relations[] = $k;
704
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
704
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
705 705
             }
706 706
             foreach ($j as $kk => $vv) {
707 707
                 foreach ($vv->keymap as $kkk => $vvv) {
708
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) {
709
-                        $relations[$k] = [ $v, $table ];
708
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) {
709
+                        $relations[$k] = [$v, $table];
710 710
                         $used_relations[] = $k;
711 711
                         $j[$kk]->keymap[$kkk] =
712
-                            preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv);
712
+                            preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv);
713 713
                     }
714 714
                 }
715 715
             }
716 716
         }
717 717
         foreach ($aliases_ext as $k => $alias) {
718 718
             foreach ($w as $kk => $v) {
719
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
720
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
719
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
720
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
721 721
                     $used_relations[] = $k;
722 722
                 }
723 723
             }
724 724
             foreach ($h as $kk => $v) {
725
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
726
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
725
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
726
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
727 727
                     $used_relations[] = $k;
728 728
                 }
729 729
             }
730
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
730
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
731 731
                 $used_relations[] = $k;
732 732
             }
733
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
734
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $g[0]);
733
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
734
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $g[0]);
735 735
                 $used_relations[] = $k;
736 736
             }
737 737
             foreach ($j as $kk => $v) {
738 738
                 foreach ($v->keymap as $kkk => $vv) {
739
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
739
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
740 740
                         $used_relations[] = $k;
741 741
                         $j[$kk]->keymap[$kkk] = preg_replace(
742
-                            '(\b'.preg_quote($k . '.'). ')i',
743
-                            $alias . '.',
742
+                            '(\b'.preg_quote($k.'.').')i',
743
+                            $alias.'.',
744 744
                             $vv
745 745
                         );
746 746
                     }
@@ -759,13 +759,13 @@  discard block
 block discarded – undo
759 759
                     foreach ($v->keymap as $kk => $vv) {
760 760
                         $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
761 761
                     }
762
-                    $sql .= implode(' AND ', $tmp) . ' ';
762
+                    $sql .= implode(' AND ', $tmp).' ';
763 763
                     $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($k).' ON ';
764 764
                     $tmp = [];
765 765
                     foreach ($v->pivot_keymap as $kk => $vv) {
766 766
                         $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' ';
767 767
                     }
768
-                    $sql .= implode(' AND ', $tmp) . ' ';
768
+                    $sql .= implode(' AND ', $tmp).' ';
769 769
                 } else {
770 770
                     $alias = $getAlias($k);
771 771
                     $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$alias.' ON ';
@@ -774,10 +774,10 @@  discard block
 block discarded – undo
774 774
                         $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
775 775
                     }
776 776
                     if ($v->sql) {
777
-                        $tmp[] = $v->sql . ' ';
777
+                        $tmp[] = $v->sql.' ';
778 778
                         $par = array_merge($par, $v->par ?? []);
779 779
                     }
780
-                    $sql .= implode(' AND ', $tmp) . ' ';
780
+                    $sql .= implode(' AND ', $tmp).' ';
781 781
                 }
782 782
             }
783 783
         }
@@ -786,12 +786,12 @@  discard block
 block discarded – undo
786 786
             if ($v->many) {
787 787
                 $jMany = true;
788 788
             }
789
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
789
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
790 790
             $tmp = [];
791 791
             foreach ($v->keymap as $kk => $vv) {
792 792
                 $tmp[] = $kk.' = '.$vv;
793 793
             }
794
-            $sql .= implode(' AND ', $tmp) . ' ';
794
+            $sql .= implode(' AND ', $tmp).' ';
795 795
         }
796 796
         if (!$jMany && !count($used_relations)) {
797 797
             $sql = str_replace('COUNT(DISTINCT ', 'COUNT(', $sql);
@@ -800,20 +800,20 @@  discard block
 block discarded – undo
800 800
             $sql .= 'WHERE ';
801 801
             $tmp = [];
802 802
             foreach ($w as $v) {
803
-                $tmp[] = '(' . $v[0] . ')';
803
+                $tmp[] = '('.$v[0].')';
804 804
                 $par = array_merge($par, $v[1]);
805 805
             }
806 806
             $sql .= implode(' AND ', $tmp).' ';
807 807
         }
808 808
         if (count($g)) {
809
-            $sql .= 'GROUP BY ' . $g[0] . ' ';
809
+            $sql .= 'GROUP BY '.$g[0].' ';
810 810
             $par = array_merge($par, $g[1]);
811 811
         }
812 812
         if (count($h)) {
813 813
             $sql .= 'HAVING ';
814 814
             $tmp = [];
815 815
             foreach ($h as $v) {
816
-                $tmp[] = '(' . $v[0] . ')';
816
+                $tmp[] = '('.$v[0].')';
817 817
                 $par = array_merge($par, $v[1]);
818 818
             }
819 819
             $sql .= implode(' AND ', $tmp).' ';
@@ -843,14 +843,14 @@  discard block
 block discarded – undo
843 843
                     } elseif (isset($this->joins[$table])) {
844 844
                         $cols = $this->joins[$table]->table->getColumns();
845 845
                     } else {
846
-                        throw new DBException('Invalid foreign table name: ' . $table);
846
+                        throw new DBException('Invalid foreign table name: '.$table);
847 847
                     }
848 848
                 } else {
849 849
                     array_pop($temp);
850 850
                     $this->with(implode('.', $temp));
851 851
                     $table = array_reduce(
852 852
                         $temp,
853
-                        function ($carry, $item) use (&$table) {
853
+                        function($carry, $item) use (&$table) {
854 854
                             return $table->getRelation($item)->table;
855 855
                         }
856 856
                     );
@@ -859,7 +859,7 @@  discard block
 block discarded – undo
859 859
                 }
860 860
                 unset($fields[$k]);
861 861
                 foreach ($cols as $col) {
862
-                    $fields[] = $table . '.' . $col;
862
+                    $fields[] = $table.'.'.$col;
863 863
                 }
864 864
             }
865 865
         }
@@ -893,11 +893,11 @@  discard block
 block discarded – undo
893 893
             if ($relation[2]) {
894 894
                 if (!$this->manualColumns) {
895 895
                     foreach ($relation[0]->table->getColumns() as $column) {
896
-                        $f[] = $name . '.' . $column;
896
+                        $f[] = $name.'.'.$column;
897 897
                     }
898 898
                 } else {
899 899
                     foreach ($relation[0]->table->getPrimaryKey() as $column) {
900
-                        $f[] = $name . '.' . $column;
900
+                        $f[] = $name.'.'.$column;
901 901
                     }
902 902
                 }
903 903
             }
@@ -917,11 +917,11 @@  discard block
 block discarded – undo
917 917
                 continue;
918 918
             }
919 919
             if (count($temp) === 2 && $this->definition->hasRelation($temp[0]) && $this->definition->getRelation($temp[0])?->table->getColumn($temp[1])) {
920
-                $r[] = $temp[0] . '.' . $temp[1];
920
+                $r[] = $temp[0].'.'.$temp[1];
921 921
                 continue;
922 922
             }
923 923
             if (count($temp) === 3 && $temp[0] === $this->definition->getSchema() && $this->definition->hasRelation($temp[1])) {
924
-                $r[] = $temp[1] . '.' . $temp[2];
924
+                $r[] = $temp[1].'.'.$temp[2];
925 925
                 continue;
926 926
             }
927 927
         }
@@ -940,9 +940,9 @@  discard block
 block discarded – undo
940 940
         }
941 941
         $aliases = [];
942 942
         $aliases_ext = [];
943
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
943
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
944 944
             // to bypass use: return $name;
945
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
945
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
946 946
             if (isset($aliases_ext[$name])) {
947 947
                 unset($aliases_ext[$name]);
948 948
             }
@@ -967,7 +967,7 @@  discard block
 block discarded – undo
967 967
         $h = $this->having;
968 968
         $o = $this->order;
969 969
         $g = $this->group;
970
-        $j = array_map(function ($v) {
970
+        $j = array_map(function($v) {
971 971
             return clone $v;
972 972
         }, $this->joins);
973 973
 
@@ -982,11 +982,10 @@  discard block
 block discarded – undo
982 982
             }
983 983
             $temp = [];
984 984
             foreach ($f as $kk => $field) {
985
-                if (strpos($field, $k . '.') === 0) {
986
-                    $f[$kk] = str_replace($k . '.', $getAlias($k) . '.', $field);
985
+                if (strpos($field, $k.'.') === 0) {
986
+                    $f[$kk] = str_replace($k.'.', $getAlias($k).'.', $field);
987 987
                     $nk = $this->aliasColumns && is_numeric($kk) ?
988
-                        $getAlias($k . static::SEP . str_replace($k . '.', '', $field)) :
989
-                        $kk;
988
+                        $getAlias($k.static::SEP.str_replace($k.'.', '', $field)) : $kk;
990 989
                     $temp[$nk] = $f[$kk];
991 990
                 } else {
992 991
                     $temp[$kk] = $field;
@@ -994,27 +993,27 @@  discard block
 block discarded – undo
994 993
             }
995 994
             $f = $temp;
996 995
             foreach ($w as $kk => $v) {
997
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
998
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
996
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
997
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
999 998
                 }
1000 999
             }
1001 1000
             foreach ($h as $kk => $v) {
1002
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1003
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1001
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1002
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1004 1003
                 }
1005 1004
             }
1006
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1007
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1005
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1006
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1008 1007
             }
1009
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
1010
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
1008
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
1009
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
1011 1010
             }
1012 1011
             foreach ($j as $kk => $v) {
1013 1012
                 foreach ($v->keymap as $kkk => $vv) {
1014
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1013
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1015 1014
                         $j[$kk]->keymap[$kkk] = preg_replace(
1016
-                            '(\b'.preg_quote($k . '.'). ')i',
1017
-                            $getAlias($k) . '.',
1015
+                            '(\b'.preg_quote($k.'.').')i',
1016
+                            $getAlias($k).'.',
1018 1017
                             $vv
1019 1018
                         );
1020 1019
                     }
@@ -1024,12 +1023,11 @@  discard block
 block discarded – undo
1024 1023
         foreach ($this->definition->getRelations() as $k => $relation) {
1025 1024
             $temp = [];
1026 1025
             foreach ($f as $kk => $field) {
1027
-                if (strpos($field, $k . '.') === 0) {
1028
-                    $relations[$k] = [ $relation, $table ];
1029
-                    $f[$kk] = str_replace($k . '.', $getAlias($k) . '.', $field);
1026
+                if (strpos($field, $k.'.') === 0) {
1027
+                    $relations[$k] = [$relation, $table];
1028
+                    $f[$kk] = str_replace($k.'.', $getAlias($k).'.', $field);
1030 1029
                     $nk = $this->aliasColumns && is_numeric($kk) ?
1031
-                        $getAlias($k . static::SEP . str_replace($k . '.', '', $field)) :
1032
-                        $kk;
1030
+                        $getAlias($k.static::SEP.str_replace($k.'.', '', $field)) : $kk;
1033 1031
                     $temp[$nk] = $f[$kk];
1034 1032
                 } else {
1035 1033
                     $temp[$kk] = $field;
@@ -1037,32 +1035,32 @@  discard block
 block discarded – undo
1037 1035
             }
1038 1036
             $f = $temp;
1039 1037
             foreach ($w as $kk => $v) {
1040
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1041
-                    $relations[$k] = [ $relation, $table ];
1042
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1038
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1039
+                    $relations[$k] = [$relation, $table];
1040
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1043 1041
                 }
1044 1042
             }
1045 1043
             foreach ($h as $kk => $v) {
1046
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1047
-                    $relations[$k] = [ $relation, $table ];
1048
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1044
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1045
+                    $relations[$k] = [$relation, $table];
1046
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1049 1047
                 }
1050 1048
             }
1051
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1052
-                $relations[$k] = [ $relation, $table ];
1053
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1049
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1050
+                $relations[$k] = [$relation, $table];
1051
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1054 1052
             }
1055
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
1056
-                $relations[$k] = [ $relation, $table ];
1057
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]);
1053
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
1054
+                $relations[$k] = [$relation, $table];
1055
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]);
1058 1056
             }
1059 1057
             foreach ($j as $kk => $v) {
1060 1058
                 foreach ($v->keymap as $kkk => $vv) {
1061
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1062
-                        $relations[$k] = [ $relation, $table ];
1059
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1060
+                        $relations[$k] = [$relation, $table];
1063 1061
                         $j[$kk]->keymap[$kkk] = preg_replace(
1064
-                            '(\b'.preg_quote($k . '.'). ')i',
1065
-                            $getAlias($k) . '.',
1062
+                            '(\b'.preg_quote($k.'.').')i',
1063
+                            $getAlias($k).'.',
1066 1064
                             $vv
1067 1065
                         );
1068 1066
                     }
@@ -1072,11 +1070,10 @@  discard block
 block discarded – undo
1072 1070
         foreach ($aliases_ext as $k => $alias) {
1073 1071
             $temp = [];
1074 1072
             foreach ($f as $kk => $field) {
1075
-                if (strpos($field, $k . '.') === 0) {
1076
-                    $f[$kk] = str_replace($k . '.', $alias . '.', $field);
1073
+                if (strpos($field, $k.'.') === 0) {
1074
+                    $f[$kk] = str_replace($k.'.', $alias.'.', $field);
1077 1075
                     $nk = $this->aliasColumns && is_numeric($kk) ?
1078
-                        $getAlias($k . static::SEP . str_replace($k . '.', '', $field)) :
1079
-                        $kk;
1076
+                        $getAlias($k.static::SEP.str_replace($k.'.', '', $field)) : $kk;
1080 1077
                     $temp[$nk] = $f[$kk];
1081 1078
                 } else {
1082 1079
                     $temp[$kk] = $field;
@@ -1084,27 +1081,27 @@  discard block
 block discarded – undo
1084 1081
             }
1085 1082
             $f = $temp;
1086 1083
             foreach ($w as $kk => $v) {
1087
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1088
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1084
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1085
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1089 1086
                 }
1090 1087
             }
1091 1088
             foreach ($h as $kk => $v) {
1092
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1093
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1089
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1090
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1094 1091
                 }
1095 1092
             }
1096
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1097
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $o[0]);
1093
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1094
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $o[0]);
1098 1095
             }
1099
-            if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) {
1100
-                $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $g[0]);
1096
+            if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) {
1097
+                $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $g[0]);
1101 1098
             }
1102 1099
             foreach ($j as $kk => $v) {
1103 1100
                 foreach ($v->keymap as $kkk => $vv) {
1104
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1101
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1105 1102
                         $j[$kk]->keymap[$kkk] = preg_replace(
1106
-                            '(\b'.preg_quote($k . '.'). ')i',
1107
-                            $alias . '.',
1103
+                            '(\b'.preg_quote($k.'.').')i',
1104
+                            $alias.'.',
1108 1105
                             $vv
1109 1106
                         );
1110 1107
                     }
@@ -1115,14 +1112,14 @@  discard block
 block discarded – undo
1115 1112
             if ($relation[2]) {
1116 1113
                 if (!$this->manualColumns) {
1117 1114
                     foreach ($relation[0]->table->getColumns() as $column) {
1118
-                        if (!in_array($getAlias($name) . '.' . $column, $f)) {
1119
-                            $f[$getAlias($name . static::SEP . $column)] = $getAlias($name) . '.' . $column;
1115
+                        if (!in_array($getAlias($name).'.'.$column, $f)) {
1116
+                            $f[$getAlias($name.static::SEP.$column)] = $getAlias($name).'.'.$column;
1120 1117
                         }
1121 1118
                     }
1122 1119
                 } else {
1123 1120
                     foreach ($relation[0]->table->getPrimaryKey() as $column) {
1124
-                        if (!in_array($getAlias($name) . '.' . $column, $f)) {
1125
-                            $f[$getAlias($name . static::SEP . $column)] = $getAlias($name) . '.' . $column;
1121
+                        if (!in_array($getAlias($name).'.'.$column, $f)) {
1122
+                            $f[$getAlias($name.static::SEP.$column)] = $getAlias($name).'.'.$column;
1126 1123
                         }
1127 1124
                     }
1128 1125
                 }
@@ -1130,7 +1127,7 @@  discard block
 block discarded – undo
1130 1127
         }
1131 1128
         $select = [];
1132 1129
         foreach ($f as $k => $field) {
1133
-            $select[] = $field . (!is_numeric($k) ? ' ' . $k : '');
1130
+            $select[] = $field.(!is_numeric($k) ? ' '.$k : '');
1134 1131
         }
1135 1132
         $sql = 'SELECT '.implode(', ', $select).' FROM '.$this->definition->getFullName().' ';
1136 1133
         $par = [];
@@ -1149,13 +1146,13 @@  discard block
 block discarded – undo
1149 1146
                 foreach ($v->keymap as $kk => $vv) {
1150 1147
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1151 1148
                 }
1152
-                $sql .= implode(' AND ', $tmp) . ' ';
1149
+                $sql .= implode(' AND ', $tmp).' ';
1153 1150
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($relation).' ON ';
1154 1151
                 $tmp = [];
1155 1152
                 foreach ($v->pivot_keymap as $kk => $vv) {
1156 1153
                     $tmp[] = $getAlias($relation).'.'.$vv.' = '.$alias.'.'.$kk.' ';
1157 1154
                 }
1158
-                $sql .= implode(' AND ', $tmp) . ' ';
1155
+                $sql .= implode(' AND ', $tmp).' ';
1159 1156
             } else {
1160 1157
                 $alias = $getAlias($relation);
1161 1158
 
@@ -1165,22 +1162,22 @@  discard block
 block discarded – undo
1165 1162
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1166 1163
                 }
1167 1164
                 if ($v->sql) {
1168
-                    $tmp[] = $v->sql . ' ';
1165
+                    $tmp[] = $v->sql.' ';
1169 1166
                     $par = array_merge($par, $v->par ?? []);
1170 1167
                 }
1171
-                $sql .= implode(' AND ', $tmp) . ' ';
1168
+                $sql .= implode(' AND ', $tmp).' ';
1172 1169
             }
1173 1170
         }
1174 1171
         foreach ($j as $k => $v) {
1175 1172
             if ($v->many) {
1176 1173
                 $many = true;
1177 1174
             }
1178
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1175
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1179 1176
             $tmp = [];
1180 1177
             foreach ($v->keymap as $kk => $vv) {
1181 1178
                 $tmp[] = $kk.' = '.$vv;
1182 1179
             }
1183
-            $sql .= implode(' AND ', $tmp) . ' ';
1180
+            $sql .= implode(' AND ', $tmp).' ';
1184 1181
         }
1185 1182
         if ($many && count($porder) && $this->li_mt) {
1186 1183
             $ids = $this->ids();
@@ -1188,9 +1185,9 @@  discard block
 block discarded – undo
1188 1185
                 if (count($porder) > 1) {
1189 1186
                     $pkw = [];
1190 1187
                     foreach ($porder as $name) {
1191
-                        $pkw[] = $name . ' = ?';
1188
+                        $pkw[] = $name.' = ?';
1192 1189
                     }
1193
-                    $pkw = '(' . implode(' AND ', $pkw) . ')';
1190
+                    $pkw = '('.implode(' AND ', $pkw).')';
1194 1191
                     $pkp = [];
1195 1192
                     foreach ($ids as $id) {
1196 1193
                         foreach ($id as $p) {
@@ -1202,61 +1199,61 @@  discard block
 block discarded – undo
1202 1199
                         $pkp
1203 1200
                     ];
1204 1201
                 } else {
1205
-                    $w[] = [ $porder[0] . ' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids ];
1202
+                    $w[] = [$porder[0].' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids];
1206 1203
                 }
1207 1204
             } else {
1208
-                $w[] = [ '1=0', [] ];
1205
+                $w[] = ['1=0', []];
1209 1206
             }
1210 1207
         }
1211 1208
         if (count($w)) {
1212 1209
             $sql .= 'WHERE ';
1213 1210
             $tmp = [];
1214 1211
             foreach ($w as $v) {
1215
-                $tmp[] = '(' . $v[0] . ')';
1212
+                $tmp[] = '('.$v[0].')';
1216 1213
                 $par = array_merge($par, $v[1]);
1217 1214
             }
1218 1215
             $sql .= implode(' AND ', $tmp).' ';
1219 1216
         }
1220 1217
         if (count($g)) {
1221
-            $sql .= 'GROUP BY ' . $g[0] . ' ';
1218
+            $sql .= 'GROUP BY '.$g[0].' ';
1222 1219
             $par = array_merge($par, $g[1]);
1223 1220
         }
1224 1221
         if (count($h)) {
1225 1222
             $sql .= 'HAVING ';
1226 1223
             $tmp = [];
1227 1224
             foreach ($h as $v) {
1228
-                $tmp[] = '(' . $v[0] . ')';
1225
+                $tmp[] = '('.$v[0].')';
1229 1226
                 $par = array_merge($par, $v[1]);
1230 1227
             }
1231 1228
             $sql .= implode(' AND ', $tmp).' ';
1232 1229
         }
1233 1230
         $ordered = false;
1234 1231
         if (count($o)) {
1235
-            $sql .= 'ORDER BY ' . $o[0] . ' ';
1232
+            $sql .= 'ORDER BY '.$o[0].' ';
1236 1233
             $par = array_merge($par, $o[1]);
1237 1234
             $ordered = true;
1238 1235
         }
1239 1236
         if (!count($g) && count($porder)) {
1240 1237
             $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC';
1241
-            $porder = array_map(function ($v) use ($pdir) {
1242
-                return $v . ' ' . $pdir;
1238
+            $porder = array_map(function($v) use ($pdir) {
1239
+                return $v.' '.$pdir;
1243 1240
             }, $porder);
1244
-            $sql .= ($ordered ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' ';
1241
+            $sql .= ($ordered ? ', ' : 'ORDER BY ').implode(', ', $porder).' ';
1245 1242
             $ordered = true;
1246 1243
         }
1247 1244
         foreach ($this->withr as $k => $v) {
1248 1245
             if (isset($v[3])) {
1249
-                $sql .= ($ordered ? ', ' : 'ORDER BY ') .
1250
-                    $getAlias($k) . '.' . $v[3] . ' ' . ($v[4] ? 'DESC' : 'ASC') . ' ';
1246
+                $sql .= ($ordered ? ', ' : 'ORDER BY ').
1247
+                    $getAlias($k).'.'.$v[3].' '.($v[4] ? 'DESC' : 'ASC').' ';
1251 1248
                 $ordered = true;
1252 1249
             }
1253 1250
         }
1254 1251
         if ((!$many || !$this->li_mt || !count($porder)) && $this->li_of[0]) {
1255 1252
             if ($this->db->driverName() === 'oracle') {
1256
-                if ((int)$this->db->driverOption('version', 0) >= 12) {
1257
-                    $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY';
1253
+                if ((int) $this->db->driverOption('version', 0) >= 12) {
1254
+                    $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY';
1258 1255
                 } else {
1259
-                    $f = array_map(function ($v) {
1256
+                    $f = array_map(function($v) {
1260 1257
                         $v = explode(' ', trim($v), 2);
1261 1258
                         if (count($v) === 2) {
1262 1259
                             return $v[1];
@@ -1264,16 +1261,16 @@  discard block
 block discarded – undo
1264 1261
                         $v = explode('.', $v[0], 2);
1265 1262
                         return count($v) === 2 ? $v[1] : $v[0];
1266 1263
                     }, $select);
1267
-                    $sql = "SELECT " . implode(', ', $f) . "
1264
+                    $sql = "SELECT ".implode(', ', $f)."
1268 1265
                             FROM (
1269 1266
                                 SELECT tbl__.*, rownum rnum__ FROM (
1270
-                                    " . $sql . "
1267
+                                    " . $sql."
1271 1268
                                 ) tbl__
1272
-                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . "
1269
+                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])."
1273 1270
                             ) WHERE rnum__ > " . $this->li_of[1];
1274 1271
                 }
1275 1272
             } else {
1276
-                $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1];
1273
+                $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1];
1277 1274
             }
1278 1275
         }
1279 1276
         return $this->qiterator = new TableQueryIterator(
@@ -1323,12 +1320,12 @@  discard block
 block discarded – undo
1323 1320
                 $ret[$k] = str_repeat(' ', 255);
1324 1321
                 $par[] = &$ret[$k];
1325 1322
             }
1326
-            $sql .= ' RETURNING ' . implode(',', $primary) .
1327
-                ' INTO ' . implode(',', array_fill(0, count($primary), '?'));
1323
+            $sql .= ' RETURNING '.implode(',', $primary).
1324
+                ' INTO '.implode(',', array_fill(0, count($primary), '?'));
1328 1325
             $this->db->query($sql, $par);
1329 1326
             return $ret;
1330 1327
         } elseif ($this->db->driverName() === 'postgre') {
1331
-            $sql .= ' RETURNING ' . implode(',', $primary);
1328
+            $sql .= ' RETURNING '.implode(',', $primary);
1332 1329
             return $this->db->one($sql, $par, false);
1333 1330
         } else {
1334 1331
             $ret = [];
@@ -1359,9 +1356,9 @@  discard block
 block discarded – undo
1359 1356
         }
1360 1357
         $sql = 'UPDATE '.$table.' SET ';
1361 1358
         $par = [];
1362
-        $sql .= implode(', ', array_map(function ($v) {
1363
-            return $v . ' = ?';
1364
-        }, array_keys($update))) . ' ';
1359
+        $sql .= implode(', ', array_map(function($v) {
1360
+            return $v.' = ?';
1361
+        }, array_keys($update))).' ';
1365 1362
         $par = array_merge($par, array_values($update));
1366 1363
         if (count($this->where)) {
1367 1364
             $sql .= 'WHERE ';
@@ -1370,7 +1367,7 @@  discard block
 block discarded – undo
1370 1367
                 $tmp[] = $v[0];
1371 1368
                 $par = array_merge($par, $v[1]);
1372 1369
             }
1373
-            $sql .= implode(' AND ', $tmp) . ' ';
1370
+            $sql .= implode(' AND ', $tmp).' ';
1374 1371
         }
1375 1372
         if (count($this->order)) {
1376 1373
             $sql .= $this->order[0];
@@ -1394,7 +1391,7 @@  discard block
 block discarded – undo
1394 1391
                 $tmp[] = $v[0];
1395 1392
                 $par = array_merge($par, $v[1]);
1396 1393
             }
1397
-            $sql .= implode(' AND ', $tmp) . ' ';
1394
+            $sql .= implode(' AND ', $tmp).' ';
1398 1395
         }
1399 1396
         if (count($this->order)) {
1400 1397
             $sql .= $this->order[0];
@@ -1425,15 +1422,15 @@  discard block
 block discarded – undo
1425 1422
             try {
1426 1423
                 $name = array_reduce(
1427 1424
                     $parts,
1428
-                    function ($carry, $item) use (&$table, $select) {
1425
+                    function($carry, $item) use (&$table, $select) {
1429 1426
                         if (!$table->hasRelation($item)) {
1430
-                            throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item);
1427
+                            throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item);
1431 1428
                         }
1432 1429
                         $relation = $table->getRelation($item);
1433 1430
                         if (!$relation) {
1434
-                            throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item);
1431
+                            throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item);
1435 1432
                         }
1436
-                        $name = $carry ? $carry . static::SEP . $item : $item;
1433
+                        $name = $carry ? $carry.static::SEP.$item : $item;
1437 1434
                         $this->withr[$name] = [
1438 1435
                             $relation,
1439 1436
                             $carry ?? $table->getName(),
@@ -1504,9 +1501,9 @@  discard block
 block discarded – undo
1504 1501
 
1505 1502
         $aliases = [];
1506 1503
         $aliases_ext = [];
1507
-        $getAlias = function ($name) use (&$aliases, &$aliases_ext) {
1504
+        $getAlias = function($name) use (&$aliases, &$aliases_ext) {
1508 1505
             // to bypass use: return $name;
1509
-            $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases);
1506
+            $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases);
1510 1507
             if (isset($aliases_ext[$name])) {
1511 1508
                 unset($aliases_ext[$name]);
1512 1509
             }
@@ -1526,7 +1523,7 @@  discard block
 block discarded – undo
1526 1523
         $w = $this->where;
1527 1524
         $h = $this->having;
1528 1525
         $o = $this->order;
1529
-        $j = array_map(function ($v) {
1526
+        $j = array_map(function($v) {
1530 1527
             return clone $v;
1531 1528
         }, $this->joins);
1532 1529
 
@@ -1535,24 +1532,24 @@  discard block
 block discarded – undo
1535 1532
                 continue;
1536 1533
             }
1537 1534
             foreach ($w as $kk => $v) {
1538
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1539
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1535
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1536
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1540 1537
                 }
1541 1538
             }
1542 1539
             foreach ($h as $kk => $v) {
1543
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1544
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]);
1540
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1541
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]);
1545 1542
                 }
1546 1543
             }
1547
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1548
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1544
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1545
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1549 1546
             }
1550 1547
             foreach ($j as $kk => $v) {
1551 1548
                 foreach ($v->keymap as $kkk => $vv) {
1552
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1549
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1553 1550
                         $j[$kk]->keymap[$kkk] = preg_replace(
1554
-                            '(\b'.preg_quote($k . '.'). ')i',
1555
-                            $getAlias($k) . '.',
1551
+                            '(\b'.preg_quote($k.'.').')i',
1552
+                            $getAlias($k).'.',
1556 1553
                             $vv
1557 1554
                         );
1558 1555
                     }
@@ -1561,52 +1558,52 @@  discard block
 block discarded – undo
1561 1558
         }
1562 1559
         foreach ($this->definition->getRelations() as $k => $v) {
1563 1560
             foreach ($w as $kk => $vv) {
1564
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
1565
-                    $relations[$k] = [ $v, $table ];
1566
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
1561
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
1562
+                    $relations[$k] = [$v, $table];
1563
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
1567 1564
                 }
1568 1565
             }
1569
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1570
-                $relations[$k] = [ $v, $table ];
1571
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]);
1572
-                $o[2] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[2]);
1566
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1567
+                $relations[$k] = [$v, $table];
1568
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]);
1569
+                $o[2] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[2]);
1573 1570
             }
1574 1571
             foreach ($h as $kk => $vv) {
1575
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) {
1576
-                    $relations[$k] = [ $v, $table ];
1577
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]);
1572
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) {
1573
+                    $relations[$k] = [$v, $table];
1574
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]);
1578 1575
                 }
1579 1576
             }
1580 1577
             foreach ($j as $kk => $vv) {
1581 1578
                 foreach ($vv->keymap as $kkk => $vvv) {
1582
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) {
1583
-                        $relations[$k] = [ $v, $table ];
1579
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) {
1580
+                        $relations[$k] = [$v, $table];
1584 1581
                         $j[$kk]->keymap[$kkk] =
1585
-                            preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv);
1582
+                            preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv);
1586 1583
                     }
1587 1584
                 }
1588 1585
             }
1589 1586
         }
1590 1587
         foreach ($aliases_ext as $k => $alias) {
1591 1588
             foreach ($w as $kk => $v) {
1592
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1593
-                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1589
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1590
+                    $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1594 1591
                 }
1595 1592
             }
1596 1593
             foreach ($h as $kk => $v) {
1597
-                if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) {
1598
-                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $v[0]);
1594
+                if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) {
1595
+                    $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $v[0]);
1599 1596
                 }
1600 1597
             }
1601
-            if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) {
1602
-                $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $alias . '.', $o[0]);
1598
+            if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) {
1599
+                $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $alias.'.', $o[0]);
1603 1600
             }
1604 1601
             foreach ($j as $kk => $v) {
1605 1602
                 foreach ($v->keymap as $kkk => $vv) {
1606
-                    if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) {
1603
+                    if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) {
1607 1604
                         $j[$kk]->keymap[$kkk] = preg_replace(
1608
-                            '(\b'.preg_quote($k . '.'). ')i',
1609
-                            $alias . '.',
1605
+                            '(\b'.preg_quote($k.'.').')i',
1606
+                            $alias.'.',
1610 1607
                             $vv
1611 1608
                         );
1612 1609
                     }
@@ -1614,29 +1611,29 @@  discard block
 block discarded – undo
1614 1611
             }
1615 1612
         }
1616 1613
 
1617
-        $key = array_map(function ($v) use ($table) {
1618
-            return $table . '.' . $v;
1614
+        $key = array_map(function($v) use ($table) {
1615
+            return $table.'.'.$v;
1619 1616
         }, $this->pkey);
1620 1617
         $own = false;
1621 1618
         $dir = 'ASC';
1622 1619
         if (count($o)) {
1623 1620
             $dir = strpos($o[0], ' DESC') ? 'DESC' : 'ASC';
1624
-            $own = strpos($o[2], $table . '.') === 0;
1621
+            $own = strpos($o[2], $table.'.') === 0;
1625 1622
         }
1626 1623
 
1627 1624
         $dst = $key;
1628 1625
         if (count($o)) {
1629 1626
             if ($own) {
1630 1627
                 // if using own table - do not use max/min in order - that will prevent index usage
1631
-                $dst[] = $o[2] . ' orderbyfix___';
1628
+                $dst[] = $o[2].' orderbyfix___';
1632 1629
             } else {
1633
-                $dst[] = 'MAX(' . $o[2] . ') orderbyfix___';
1630
+                $dst[] = 'MAX('.$o[2].') orderbyfix___';
1634 1631
             }
1635 1632
         }
1636 1633
         $dst = array_unique($dst);
1637 1634
 
1638 1635
         $par = [];
1639
-        $sql  = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' ';
1636
+        $sql = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' ';
1640 1637
         foreach ($relations as $k => $v) {
1641 1638
             $table = $v[1] !== $this->definition->getName() ? $getAlias($v[1]) : $v[1];
1642 1639
             $v = $v[0];
@@ -1647,13 +1644,13 @@  discard block
 block discarded – undo
1647 1644
                 foreach ($v->keymap as $kk => $vv) {
1648 1645
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1649 1646
                 }
1650
-                $sql .= implode(' AND ', $tmp) . ' ';
1647
+                $sql .= implode(' AND ', $tmp).' ';
1651 1648
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($k).' ON ';
1652 1649
                 $tmp = [];
1653 1650
                 foreach ($v->pivot_keymap as $kk => $vv) {
1654 1651
                     $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' ';
1655 1652
                 }
1656
-                $sql .= implode(' AND ', $tmp) . ' ';
1653
+                $sql .= implode(' AND ', $tmp).' ';
1657 1654
             } else {
1658 1655
                 $alias = $getAlias($k);
1659 1656
                 $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$alias.' ON ';
@@ -1662,37 +1659,37 @@  discard block
 block discarded – undo
1662 1659
                     $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' ';
1663 1660
                 }
1664 1661
                 if ($v->sql) {
1665
-                    $tmp[] = $v->sql . ' ';
1662
+                    $tmp[] = $v->sql.' ';
1666 1663
                     $par = array_merge($par, $v->par ?? []);
1667 1664
                 }
1668
-                $sql .= implode(' AND ', $tmp) . ' ';
1665
+                $sql .= implode(' AND ', $tmp).' ';
1669 1666
             }
1670 1667
         }
1671 1668
         foreach ($j as $k => $v) {
1672
-            $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1669
+            $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON ';
1673 1670
             $tmp = [];
1674 1671
             foreach ($v->keymap as $kk => $vv) {
1675 1672
                 $tmp[] = $kk.' = '.$vv;
1676 1673
             }
1677
-            $sql .= implode(' AND ', $tmp) . ' ';
1674
+            $sql .= implode(' AND ', $tmp).' ';
1678 1675
         }
1679 1676
         if (count($w)) {
1680 1677
             $sql .= 'WHERE ';
1681 1678
             $tmp = [];
1682 1679
             foreach ($w as $v) {
1683
-                $tmp[] = '(' . $v[0] . ')';
1680
+                $tmp[] = '('.$v[0].')';
1684 1681
                 $par = array_merge($par, $v[1]);
1685 1682
             }
1686 1683
             $sql .= implode(' AND ', $tmp).' ';
1687 1684
         }
1688 1685
         if (!$own) {
1689
-            $sql .= 'GROUP BY ' . implode(', ', $key) . ' ';
1686
+            $sql .= 'GROUP BY '.implode(', ', $key).' ';
1690 1687
         }
1691 1688
         if (count($h)) {
1692 1689
             $sql .= 'HAVING ';
1693 1690
             $tmp = [];
1694 1691
             foreach ($h as $v) {
1695
-                $tmp[] = '(' . $v[0] . ')';
1692
+                $tmp[] = '('.$v[0].')';
1696 1693
                 $par = array_merge($par, $v[1]);
1697 1694
             }
1698 1695
             $sql .= implode(' AND ', $tmp).' ';
@@ -1700,38 +1697,38 @@  discard block
 block discarded – undo
1700 1697
         if (count($o)) {
1701 1698
             $sql .= 'ORDER BY ';
1702 1699
             if ($own) {
1703
-                $sql .= $o[2] . ' ' . $dir;
1700
+                $sql .= $o[2].' '.$dir;
1704 1701
             } else {
1705
-                $sql .= 'MAX('.$o[2].') ' . $dir;
1702
+                $sql .= 'MAX('.$o[2].') '.$dir;
1706 1703
             }
1707 1704
         }
1708 1705
         $porder = [];
1709 1706
         $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC';
1710 1707
         foreach ($this->definition->getPrimaryKey() as $field) {
1711
-            $porder[] = $this->getColumn($field)['name'] . ' ' . $pdir;
1708
+            $porder[] = $this->getColumn($field)['name'].' '.$pdir;
1712 1709
         }
1713 1710
         if (count($porder)) {
1714
-            $sql .= (count($o) ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' ';
1711
+            $sql .= (count($o) ? ', ' : 'ORDER BY ').implode(', ', $porder).' ';
1715 1712
         }
1716 1713
 
1717 1714
         if ($this->li_of[0]) {
1718 1715
             if ($this->db->driverName() === 'oracle') {
1719
-                if ((int)$this->db->driverOption('version', 12) >= 12) {
1720
-                    $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY';
1716
+                if ((int) $this->db->driverOption('version', 12) >= 12) {
1717
+                    $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY';
1721 1718
                 } else {
1722
-                    $sql = "SELECT " . implode(', ', $dst) . "
1719
+                    $sql = "SELECT ".implode(', ', $dst)."
1723 1720
                             FROM (
1724 1721
                                 SELECT tbl__.*, rownum rnum__ FROM (
1725
-                                    " . $sql . "
1722
+                                    " . $sql."
1726 1723
                                 ) tbl__
1727
-                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . "
1724
+                                WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])."
1728 1725
                             ) WHERE rnum__ > " . $this->li_of[1];
1729 1726
                 }
1730 1727
             } else {
1731
-                $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1];
1728
+                $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1];
1732 1729
             }
1733 1730
         }
1734
-        return array_map(function ($v) {
1731
+        return array_map(function($v) {
1735 1732
             if (array_key_exists('orderbyfix___', $v)) {
1736 1733
                 unset($v['orderbyfix___']);
1737 1734
             }
Please login to merge, or discard this patch.