@@ -45,7 +45,7 @@ discard block |
||
45 | 45 | /** |
46 | 46 | * @var int[] |
47 | 47 | */ |
48 | - protected $li_of = [0,0,0]; |
|
48 | + protected $li_of = [0, 0, 0]; |
|
49 | 49 | /** |
50 | 50 | * @var array |
51 | 51 | */ |
@@ -75,7 +75,7 @@ discard block |
||
75 | 75 | public function __construct(DBInterface $db, $table) |
76 | 76 | { |
77 | 77 | $this->db = $db; |
78 | - $this->definition = $table instanceof Table ? $table : $this->db->definition((string)$table); |
|
78 | + $this->definition = $table instanceof Table ? $table : $this->db->definition((string) $table); |
|
79 | 79 | $primary = $this->definition->getPrimaryKey(); |
80 | 80 | $columns = $this->definition->getColumns(); |
81 | 81 | $this->pkey = count($primary) ? $primary : $columns; |
@@ -98,7 +98,7 @@ discard block |
||
98 | 98 | { |
99 | 99 | $column = explode('.', $column); |
100 | 100 | if (count($column) === 1) { |
101 | - $column = [ $this->definition->getFullName(), $column[0] ]; |
|
101 | + $column = [$this->definition->getFullName(), $column[0]]; |
|
102 | 102 | $col = $this->definition->getColumn($column[1]); |
103 | 103 | if (!$col) { |
104 | 104 | throw new DBException('Invalid column name in own table'); |
@@ -121,7 +121,7 @@ discard block |
||
121 | 121 | throw new DBException('Invalid column name in related table'); |
122 | 122 | } |
123 | 123 | } else { |
124 | - throw new DBException('Invalid foreign table name: ' . implode(',', $column)); |
|
124 | + throw new DBException('Invalid foreign table name: '.implode(',', $column)); |
|
125 | 125 | } |
126 | 126 | } |
127 | 127 | } else { |
@@ -129,26 +129,26 @@ discard block |
||
129 | 129 | if ($this->definition->hasRelation(implode('.', $column))) { |
130 | 130 | $this->with(implode('.', $column), false); |
131 | 131 | $col = $this->definition->getRelation(implode('.', $column))->table->getColumn($name); |
132 | - $column = [ implode('.', $column), $name ]; |
|
132 | + $column = [implode('.', $column), $name]; |
|
133 | 133 | } else { |
134 | 134 | $this->with(implode('.', $column), false); |
135 | 135 | $table = $this->definition; |
136 | 136 | $table = array_reduce( |
137 | 137 | $column, |
138 | - function ($carry, $item) use (&$table) { |
|
138 | + function($carry, $item) use (&$table) { |
|
139 | 139 | $table = $table->getRelation($item)->table; |
140 | 140 | return $table; |
141 | 141 | } |
142 | 142 | ); |
143 | 143 | $col = $table->getColumn($name); |
144 | - $column = [ implode(static::SEP, $column), $name ]; |
|
144 | + $column = [implode(static::SEP, $column), $name]; |
|
145 | 145 | } |
146 | 146 | } |
147 | - return [ 'name' => implode('.', $column), 'data' => $col ]; |
|
147 | + return ['name' => implode('.', $column), 'data' => $col]; |
|
148 | 148 | } |
149 | 149 | protected function normalizeValue(TableColumn $col, $value) |
150 | 150 | { |
151 | - $strict = (int)$this->db->driverOption('strict', 0) > 0; |
|
151 | + $strict = (int) $this->db->driverOption('strict', 0) > 0; |
|
152 | 152 | if ($value === null && $col->isNullable()) { |
153 | 153 | return null; |
154 | 154 | } |
@@ -158,7 +158,7 @@ discard block |
||
158 | 158 | $temp = strtotime($value); |
159 | 159 | if (!$temp) { |
160 | 160 | if ($strict) { |
161 | - throw new DBException('Invalid value for date column ' . $col->getName()); |
|
161 | + throw new DBException('Invalid value for date column '.$col->getName()); |
|
162 | 162 | } |
163 | 163 | return null; |
164 | 164 | } |
@@ -171,7 +171,7 @@ discard block |
||
171 | 171 | return $value->format('Y-m-d'); |
172 | 172 | } |
173 | 173 | if ($strict) { |
174 | - throw new DBException('Invalid value (unknown data type) for date column ' . $col->getName()); |
|
174 | + throw new DBException('Invalid value (unknown data type) for date column '.$col->getName()); |
|
175 | 175 | } |
176 | 176 | return $value; |
177 | 177 | case 'datetime': |
@@ -179,7 +179,7 @@ discard block |
||
179 | 179 | $temp = strtotime($value); |
180 | 180 | if (!$temp) { |
181 | 181 | if ($strict) { |
182 | - throw new DBException('Invalid value for datetime column ' . $col->getName()); |
|
182 | + throw new DBException('Invalid value for datetime column '.$col->getName()); |
|
183 | 183 | } |
184 | 184 | return null; |
185 | 185 | } |
@@ -192,7 +192,7 @@ discard block |
||
192 | 192 | return $value->format('Y-m-d H:i:s'); |
193 | 193 | } |
194 | 194 | if ($strict) { |
195 | - throw new DBException('Invalid value (unknown data type) for datetime column ' . $col->getName()); |
|
195 | + throw new DBException('Invalid value (unknown data type) for datetime column '.$col->getName()); |
|
196 | 196 | } |
197 | 197 | return $value; |
198 | 198 | case 'enum': |
@@ -200,7 +200,7 @@ discard block |
||
200 | 200 | if (is_int($value)) { |
201 | 201 | if (!isset($values[$value])) { |
202 | 202 | if ($strict) { |
203 | - throw new DBException('Invalid value (using integer) for enum ' . $col->getName()); |
|
203 | + throw new DBException('Invalid value (using integer) for enum '.$col->getName()); |
|
204 | 204 | } |
205 | 205 | return $value; |
206 | 206 | } |
@@ -208,23 +208,23 @@ discard block |
||
208 | 208 | } |
209 | 209 | if (!in_array($value, $col->getValues())) { |
210 | 210 | if ($strict) { |
211 | - throw new DBException('Invalid value for enum ' . $col->getName()); |
|
211 | + throw new DBException('Invalid value for enum '.$col->getName()); |
|
212 | 212 | } |
213 | 213 | return 0; |
214 | 214 | } |
215 | 215 | return $value; |
216 | 216 | case 'int': |
217 | 217 | $temp = preg_replace('([^+\-0-9]+)', '', $value); |
218 | - return is_string($temp) ? (int)$temp : 0; |
|
218 | + return is_string($temp) ? (int) $temp : 0; |
|
219 | 219 | case 'float': |
220 | 220 | $temp = preg_replace('([^+\-0-9.]+)', '', str_replace(',', '.', $value)); |
221 | - return is_string($temp) ? (float)$temp : 0; |
|
221 | + return is_string($temp) ? (float) $temp : 0; |
|
222 | 222 | case 'text': |
223 | 223 | // check using strlen first, in order to avoid hitting mb_ functions which might be polyfilled |
224 | 224 | // because the polyfill is quite slow |
225 | 225 | if ($col->hasLength() && strlen($value) > $col->getLength() && mb_strlen($value) > $col->getLength()) { |
226 | 226 | if ($strict) { |
227 | - throw new DBException('Invalid value for text column ' . $col->getName()); |
|
227 | + throw new DBException('Invalid value for text column '.$col->getName()); |
|
228 | 228 | } |
229 | 229 | return mb_substr($value, 0, $col->getLength()); |
230 | 230 | } |
@@ -246,35 +246,32 @@ discard block |
||
246 | 246 | // str_replace(['%', '_'], ['\\%','\\_'], $q) |
247 | 247 | return $negate ? |
248 | 248 | [ |
249 | - $name . ' NOT LIKE ?', |
|
250 | - [ $this->normalizeValue($column, $value) ] |
|
251 | - ] : |
|
252 | - [ |
|
253 | - $name . ' LIKE ?', |
|
254 | - [ $this->normalizeValue($column, $value) ] |
|
249 | + $name.' NOT LIKE ?', |
|
250 | + [$this->normalizeValue($column, $value)] |
|
251 | + ] : [ |
|
252 | + $name.' LIKE ?', |
|
253 | + [$this->normalizeValue($column, $value)] |
|
255 | 254 | ]; |
256 | 255 | } |
257 | 256 | if (is_null($value)) { |
258 | 257 | return $negate ? |
259 | - [ $name . ' IS NOT NULL', [] ]: |
|
260 | - [ $name . ' IS NULL', [] ]; |
|
258 | + [$name.' IS NOT NULL', []] : [$name.' IS NULL', []]; |
|
261 | 259 | } |
262 | 260 | if (!is_array($value)) { |
263 | 261 | return $negate ? |
264 | 262 | [ |
265 | - $name . ' <> ?', |
|
266 | - [ $this->normalizeValue($column, $value) ] |
|
267 | - ] : |
|
268 | - [ |
|
269 | - $name . ' = ?', |
|
270 | - [ $this->normalizeValue($column, $value) ] |
|
263 | + $name.' <> ?', |
|
264 | + [$this->normalizeValue($column, $value)] |
|
265 | + ] : [ |
|
266 | + $name.' = ?', |
|
267 | + [$this->normalizeValue($column, $value)] |
|
271 | 268 | ]; |
272 | 269 | } |
273 | 270 | if (isset($value['beg']) && strlen($value['beg']) && (!isset($value['end']) || !strlen($value['end']))) { |
274 | - $value = [ 'gte' => $value['beg'] ]; |
|
271 | + $value = ['gte' => $value['beg']]; |
|
275 | 272 | } |
276 | 273 | if (isset($value['end']) && strlen($value['end']) && (!isset($value['beg']) || !strlen($value['beg']))) { |
277 | - $value = [ 'lte' => $value['end'] ]; |
|
274 | + $value = ['lte' => $value['end']]; |
|
278 | 275 | } |
279 | 276 | if (isset($value['beg']) && isset($value['end'])) { |
280 | 277 | return $negate ? |
@@ -284,8 +281,7 @@ discard block |
||
284 | 281 | $this->normalizeValue($column, $value['beg']), |
285 | 282 | $this->normalizeValue($column, $value['end']) |
286 | 283 | ] |
287 | - ] : |
|
288 | - [ |
|
284 | + ] : [ |
|
289 | 285 | $name.' BETWEEN ? AND ?', |
290 | 286 | [ |
291 | 287 | $this->normalizeValue($column, $value['beg']), |
@@ -297,42 +293,42 @@ discard block |
||
297 | 293 | $sql = []; |
298 | 294 | $par = []; |
299 | 295 | if (isset($value['gt'])) { |
300 | - $sql[] = $name. ' ' . ($negate ? '<=' : '>') . ' ?'; |
|
296 | + $sql[] = $name.' '.($negate ? '<=' : '>').' ?'; |
|
301 | 297 | $par[] = $this->normalizeValue($column, $value['gt']); |
302 | 298 | } |
303 | 299 | if (isset($value['gte'])) { |
304 | - $sql[] = $name. ' ' . ($negate ? '<' : '>=') . ' ?'; |
|
300 | + $sql[] = $name.' '.($negate ? '<' : '>=').' ?'; |
|
305 | 301 | $par[] = $this->normalizeValue($column, $value['gte']); |
306 | 302 | } |
307 | 303 | if (isset($value['lt'])) { |
308 | - $sql[] = $name. ' ' . ($negate ? '>=' : '<') . ' ?'; |
|
304 | + $sql[] = $name.' '.($negate ? '>=' : '<').' ?'; |
|
309 | 305 | $par[] = $this->normalizeValue($column, $value['lt']); |
310 | 306 | } |
311 | 307 | if (isset($value['lte'])) { |
312 | - $sql[] = $name. ' ' . ($negate ? '>' : '<=') . ' ?'; |
|
308 | + $sql[] = $name.' '.($negate ? '>' : '<=').' ?'; |
|
313 | 309 | $par[] = $this->normalizeValue($column, $value['lte']); |
314 | 310 | } |
315 | 311 | return [ |
316 | - '(' . implode(' AND ', $sql) . ')', |
|
312 | + '('.implode(' AND ', $sql).')', |
|
317 | 313 | $par |
318 | 314 | ]; |
319 | 315 | } |
320 | 316 | |
321 | - $value = array_values(array_map(function ($v) use ($column) { |
|
317 | + $value = array_values(array_map(function($v) use ($column) { |
|
322 | 318 | return $this->normalizeValue($column, $v); |
323 | 319 | }, $value)); |
324 | 320 | if ($this->db->driverName() === 'oracle') { |
325 | 321 | $sql = []; |
326 | 322 | $par = []; |
327 | 323 | for ($i = 0; $i < count($value); $i += 500) { |
328 | - $sql[] = $negate ? $name . ' NOT IN (??)' : $name . ' IN (??)'; |
|
324 | + $sql[] = $negate ? $name.' NOT IN (??)' : $name.' IN (??)'; |
|
329 | 325 | $par[] = array_slice($value, $i, 500); |
330 | 326 | } |
331 | - $sql = '(' . implode($negate ? ' AND ' : ' OR ', $sql) . ')'; |
|
332 | - return [ $sql, [$par] ]; |
|
327 | + $sql = '('.implode($negate ? ' AND ' : ' OR ', $sql).')'; |
|
328 | + return [$sql, [$par]]; |
|
333 | 329 | } |
334 | 330 | return [ |
335 | - $negate ? $name . ' NOT IN (??)' : $name . ' IN (??)', |
|
331 | + $negate ? $name.' NOT IN (??)' : $name.' IN (??)', |
|
336 | 332 | [$value] |
337 | 333 | ]; |
338 | 334 | } |
@@ -364,7 +360,7 @@ discard block |
||
364 | 360 | $par = array_merge($par, $temp[1]); |
365 | 361 | } |
366 | 362 | } |
367 | - return $this->where('(' . implode(' OR ', $sql) . ')', $par); |
|
363 | + return $this->where('('.implode(' OR ', $sql).')', $par); |
|
368 | 364 | } |
369 | 365 | /** |
370 | 366 | * Filter the results matching all of the criteria |
@@ -382,7 +378,7 @@ discard block |
||
382 | 378 | $par = array_merge($par, $temp[1]); |
383 | 379 | } |
384 | 380 | } |
385 | - return $this->where('(' . implode(' AND ', $sql) . ')', $par); |
|
381 | + return $this->where('('.implode(' AND ', $sql).')', $par); |
|
386 | 382 | } |
387 | 383 | /** |
388 | 384 | * Sort by a column |
@@ -397,7 +393,7 @@ discard block |
||
397 | 393 | } catch (DBException $e) { |
398 | 394 | throw new DBException('Invalid sort column'); |
399 | 395 | } |
400 | - return $this->order($column . ' ' . ($desc ? 'DESC' : 'ASC')); |
|
396 | + return $this->order($column.' '.($desc ? 'DESC' : 'ASC')); |
|
401 | 397 | } |
402 | 398 | /** |
403 | 399 | * Group by a column (or columns) |
@@ -407,7 +403,7 @@ discard block |
||
407 | 403 | public function group($column) : self |
408 | 404 | { |
409 | 405 | if (!is_array($column)) { |
410 | - $column = [ $column ]; |
|
406 | + $column = [$column]; |
|
411 | 407 | } |
412 | 408 | foreach ($column as $k => $v) { |
413 | 409 | $column[$k] = $this->getColumn($v)['name']; |
@@ -449,7 +445,7 @@ discard block |
||
449 | 445 | $this->order = []; |
450 | 446 | $this->having = []; |
451 | 447 | $this->aliases = []; |
452 | - $this->li_of = [0,0,0]; |
|
448 | + $this->li_of = [0, 0, 0]; |
|
453 | 449 | $this->qiterator = null; |
454 | 450 | return $this; |
455 | 451 | } |
@@ -462,7 +458,7 @@ discard block |
||
462 | 458 | public function groupBy(string $sql, array $params = []) : self |
463 | 459 | { |
464 | 460 | $this->qiterator = null; |
465 | - $this->group = [ $sql, $params ]; |
|
461 | + $this->group = [$sql, $params]; |
|
466 | 462 | return $this; |
467 | 463 | } |
468 | 464 | /** |
@@ -475,7 +471,7 @@ discard block |
||
475 | 471 | */ |
476 | 472 | public function join($table, array $fields, string $name = null, bool $multiple = true) |
477 | 473 | { |
478 | - $table = $table instanceof Table ? $table : $this->db->definition((string)$table); |
|
474 | + $table = $table instanceof Table ? $table : $this->db->definition((string) $table); |
|
479 | 475 | $name = $name ?? $table->getName(); |
480 | 476 | if (isset($this->joins[$name]) || $this->definition->hasRelation($name)) { |
481 | 477 | throw new DBException('Alias / table name already in use'); |
@@ -484,7 +480,7 @@ discard block |
||
484 | 480 | foreach ($fields as $k => $v) { |
485 | 481 | $k = explode('.', $k, 2); |
486 | 482 | $k = count($k) == 2 ? $k[1] : $k[0]; |
487 | - $this->joins[$name]->keymap[$this->getColumn($name . '.' . $k)['name']] = $this->getColumn($v)['name']; |
|
483 | + $this->joins[$name]->keymap[$this->getColumn($name.'.'.$k)['name']] = $this->getColumn($v)['name']; |
|
488 | 484 | } |
489 | 485 | return $this; |
490 | 486 | } |
@@ -497,7 +493,7 @@ discard block |
||
497 | 493 | public function where(string $sql, array $params = []) : self |
498 | 494 | { |
499 | 495 | $this->qiterator = null; |
500 | - $this->where[] = [ $sql, $params ]; |
|
496 | + $this->where[] = [$sql, $params]; |
|
501 | 497 | return $this; |
502 | 498 | } |
503 | 499 | /** |
@@ -509,7 +505,7 @@ discard block |
||
509 | 505 | public function having(string $sql, array $params = []) : self |
510 | 506 | { |
511 | 507 | $this->qiterator = null; |
512 | - $this->having[] = [ $sql, $params ]; |
|
508 | + $this->having[] = [$sql, $params]; |
|
513 | 509 | return $this; |
514 | 510 | } |
515 | 511 | /** |
@@ -529,12 +525,12 @@ discard block |
||
529 | 525 | throw new \Exception(); |
530 | 526 | } |
531 | 527 | $name = $this->getColumn(trim($name))['name']; |
532 | - $sql = $name . ' ' . (strpos(strtolower($sql), ' desc') ? 'DESC' : 'ASC'); |
|
528 | + $sql = $name.' '.(strpos(strtolower($sql), ' desc') ? 'DESC' : 'ASC'); |
|
533 | 529 | } catch (\Exception $e) { |
534 | 530 | $name = null; |
535 | 531 | } |
536 | 532 | } |
537 | - $this->order = [ $sql, $params, $name ]; |
|
533 | + $this->order = [$sql, $params, $name]; |
|
538 | 534 | return $this; |
539 | 535 | } |
540 | 536 | /** |
@@ -546,7 +542,7 @@ discard block |
||
546 | 542 | public function limit(int $limit, int $offset = 0, bool $limitOnMainTable = false) : self |
547 | 543 | { |
548 | 544 | $this->qiterator = null; |
549 | - $this->li_of = [ $limit, $offset, $limitOnMainTable ? 1 : 0 ]; |
|
545 | + $this->li_of = [$limit, $offset, $limitOnMainTable ? 1 : 0]; |
|
550 | 546 | return $this; |
551 | 547 | } |
552 | 548 | /** |
@@ -556,9 +552,9 @@ discard block |
||
556 | 552 | public function count() : int |
557 | 553 | { |
558 | 554 | $aliases = []; |
559 | - $getAlias = function ($name) use (&$aliases) { |
|
555 | + $getAlias = function($name) use (&$aliases) { |
|
560 | 556 | // to bypass use: return $name; |
561 | - return $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases); |
|
557 | + return $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases); |
|
562 | 558 | }; |
563 | 559 | $table = $this->definition->getFullName(); |
564 | 560 | $sql = 'SELECT COUNT(DISTINCT ('.$table.'.'.implode(', '.$table.'.', $this->pkey).')) FROM '.$table.' '; |
@@ -572,35 +568,35 @@ discard block |
||
572 | 568 | $h = $this->having; |
573 | 569 | $o = $this->order; |
574 | 570 | $g = $this->group; |
575 | - $j = array_map(function ($v) { |
|
571 | + $j = array_map(function($v) { |
|
576 | 572 | return clone $v; |
577 | 573 | }, $this->joins); |
578 | 574 | foreach ($this->definition->getRelations() as $k => $v) { |
579 | 575 | foreach ($w as $kk => $vv) { |
580 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) { |
|
581 | - $relations[$k] = [ $v, $table ]; |
|
582 | - $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]); |
|
576 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) { |
|
577 | + $relations[$k] = [$v, $table]; |
|
578 | + $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]); |
|
583 | 579 | } |
584 | 580 | } |
585 | - if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) { |
|
586 | - $relations[$k] = [ $v, $table ]; |
|
581 | + if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) { |
|
582 | + $relations[$k] = [$v, $table]; |
|
587 | 583 | } |
588 | 584 | foreach ($h as $kk => $vv) { |
589 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) { |
|
590 | - $relations[$k] = [ $v, $table ]; |
|
591 | - $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]); |
|
585 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) { |
|
586 | + $relations[$k] = [$v, $table]; |
|
587 | + $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]); |
|
592 | 588 | } |
593 | 589 | } |
594 | - if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) { |
|
595 | - $relations[$k] = [ $v, $table ]; |
|
596 | - $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]); |
|
590 | + if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) { |
|
591 | + $relations[$k] = [$v, $table]; |
|
592 | + $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]); |
|
597 | 593 | } |
598 | 594 | foreach ($j as $kk => $vv) { |
599 | 595 | foreach ($vv->keymap as $kkk => $vvv) { |
600 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) { |
|
601 | - $relations[$k] = [ $v, $table ]; |
|
596 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) { |
|
597 | + $relations[$k] = [$v, $table]; |
|
602 | 598 | $j[$kk]->keymap[$kkk] = |
603 | - preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv); |
|
599 | + preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv); |
|
604 | 600 | } |
605 | 601 | } |
606 | 602 | } |
@@ -616,13 +612,13 @@ discard block |
||
616 | 612 | foreach ($v->keymap as $kk => $vv) { |
617 | 613 | $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' '; |
618 | 614 | } |
619 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
615 | + $sql .= implode(' AND ', $tmp).' '; |
|
620 | 616 | $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($k).' ON '; |
621 | 617 | $tmp = []; |
622 | 618 | foreach ($v->pivot_keymap as $kk => $vv) { |
623 | 619 | $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' '; |
624 | 620 | } |
625 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
621 | + $sql .= implode(' AND ', $tmp).' '; |
|
626 | 622 | } else { |
627 | 623 | $alias = $getAlias($k); |
628 | 624 | $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$alias.' ON '; |
@@ -631,38 +627,38 @@ discard block |
||
631 | 627 | $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' '; |
632 | 628 | } |
633 | 629 | if ($v->sql) { |
634 | - $tmp[] = $v->sql . ' '; |
|
630 | + $tmp[] = $v->sql.' '; |
|
635 | 631 | $par = array_merge($par, $v->par ?? []); |
636 | 632 | } |
637 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
633 | + $sql .= implode(' AND ', $tmp).' '; |
|
638 | 634 | } |
639 | 635 | } |
640 | 636 | foreach ($j as $k => $v) { |
641 | - $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getFullName().' '.$k.' ON '; |
|
637 | + $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getFullName().' '.$k.' ON '; |
|
642 | 638 | $tmp = []; |
643 | 639 | foreach ($v->keymap as $kk => $vv) { |
644 | 640 | $tmp[] = $kk.' = '.$vv; |
645 | 641 | } |
646 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
642 | + $sql .= implode(' AND ', $tmp).' '; |
|
647 | 643 | } |
648 | 644 | if (count($w)) { |
649 | 645 | $sql .= 'WHERE '; |
650 | 646 | $tmp = []; |
651 | 647 | foreach ($w as $v) { |
652 | - $tmp[] = '(' . $v[0] . ')'; |
|
648 | + $tmp[] = '('.$v[0].')'; |
|
653 | 649 | $par = array_merge($par, $v[1]); |
654 | 650 | } |
655 | 651 | $sql .= implode(' AND ', $tmp).' '; |
656 | 652 | } |
657 | 653 | if (count($g)) { |
658 | - $sql .= 'GROUP BY ' . $g[0] . ' '; |
|
654 | + $sql .= 'GROUP BY '.$g[0].' '; |
|
659 | 655 | $par = array_merge($par, $g[1]); |
660 | 656 | } |
661 | 657 | if (count($h)) { |
662 | 658 | $sql .= 'HAVING '; |
663 | 659 | $tmp = []; |
664 | 660 | foreach ($h as $v) { |
665 | - $tmp[] = '(' . $v[0] . ')'; |
|
661 | + $tmp[] = '('.$v[0].')'; |
|
666 | 662 | $par = array_merge($par, $v[1]); |
667 | 663 | } |
668 | 664 | $sql .= implode(' AND ', $tmp).' '; |
@@ -696,7 +692,7 @@ discard block |
||
696 | 692 | $this->with(implode('.', $temp)); |
697 | 693 | $table = array_reduce( |
698 | 694 | $temp, |
699 | - function ($carry, $item) use (&$table) { |
|
695 | + function($carry, $item) use (&$table) { |
|
700 | 696 | return $table->getRelation($item)->table; |
701 | 697 | } |
702 | 698 | ); |
@@ -705,7 +701,7 @@ discard block |
||
705 | 701 | } |
706 | 702 | unset($fields[$k]); |
707 | 703 | foreach ($cols as $col) { |
708 | - $fields[] = $table . '.' . $col; |
|
704 | + $fields[] = $table.'.'.$col; |
|
709 | 705 | } |
710 | 706 | } |
711 | 707 | } |
@@ -739,9 +735,9 @@ discard block |
||
739 | 735 | return $this->qiterator; |
740 | 736 | } |
741 | 737 | $aliases = []; |
742 | - $getAlias = function ($name) use (&$aliases) { |
|
738 | + $getAlias = function($name) use (&$aliases) { |
|
743 | 739 | // to bypass use: return $name; |
744 | - return $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases); |
|
740 | + return $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases); |
|
745 | 741 | }; |
746 | 742 | $table = $this->definition->getName(); |
747 | 743 | if ($fields !== null) { |
@@ -757,7 +753,7 @@ discard block |
||
757 | 753 | $h = $this->having; |
758 | 754 | $o = $this->order; |
759 | 755 | $g = $this->group; |
760 | - $j = array_map(function ($v) { |
|
756 | + $j = array_map(function($v) { |
|
761 | 757 | return clone $v; |
762 | 758 | }, $this->joins); |
763 | 759 | |
@@ -771,32 +767,32 @@ discard block |
||
771 | 767 | continue; |
772 | 768 | } |
773 | 769 | foreach ($f as $kk => $field) { |
774 | - if (strpos($field, $k . '.') === 0) { |
|
775 | - $f[$kk] = str_replace($k . '.', $getAlias($k) . '.', $field); |
|
770 | + if (strpos($field, $k.'.') === 0) { |
|
771 | + $f[$kk] = str_replace($k.'.', $getAlias($k).'.', $field); |
|
776 | 772 | } |
777 | 773 | } |
778 | 774 | foreach ($w as $kk => $v) { |
779 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) { |
|
780 | - $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]); |
|
775 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) { |
|
776 | + $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]); |
|
781 | 777 | } |
782 | 778 | } |
783 | 779 | foreach ($h as $kk => $v) { |
784 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) { |
|
785 | - $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]); |
|
780 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) { |
|
781 | + $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]); |
|
786 | 782 | } |
787 | 783 | } |
788 | - if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) { |
|
789 | - $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]); |
|
784 | + if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) { |
|
785 | + $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]); |
|
790 | 786 | } |
791 | - if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) { |
|
792 | - $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]); |
|
787 | + if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) { |
|
788 | + $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]); |
|
793 | 789 | } |
794 | 790 | foreach ($j as $kk => $v) { |
795 | 791 | foreach ($v->keymap as $kkk => $vv) { |
796 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) { |
|
792 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) { |
|
797 | 793 | $j[$kk]->keymap[$kkk] = preg_replace( |
798 | - '(\b'.preg_quote($k . '.'). ')i', |
|
799 | - $getAlias($k) . '.', |
|
794 | + '(\b'.preg_quote($k.'.').')i', |
|
795 | + $getAlias($k).'.', |
|
800 | 796 | $vv |
801 | 797 | ); |
802 | 798 | } |
@@ -805,38 +801,38 @@ discard block |
||
805 | 801 | } |
806 | 802 | foreach ($this->definition->getRelations() as $k => $relation) { |
807 | 803 | foreach ($f as $kk => $field) { |
808 | - if (strpos($field, $k . '.') === 0) { |
|
809 | - $relations[$k] = [ $relation, $table ]; |
|
810 | - $f[$kk] = str_replace($k . '.', $getAlias($k) . '.', $field); |
|
804 | + if (strpos($field, $k.'.') === 0) { |
|
805 | + $relations[$k] = [$relation, $table]; |
|
806 | + $f[$kk] = str_replace($k.'.', $getAlias($k).'.', $field); |
|
811 | 807 | } |
812 | 808 | } |
813 | 809 | foreach ($w as $kk => $v) { |
814 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) { |
|
815 | - $relations[$k] = [ $relation, $table ]; |
|
816 | - $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]); |
|
810 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) { |
|
811 | + $relations[$k] = [$relation, $table]; |
|
812 | + $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]); |
|
817 | 813 | } |
818 | 814 | } |
819 | 815 | foreach ($h as $kk => $v) { |
820 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $v[0])) { |
|
821 | - $relations[$k] = [ $relation, $table ]; |
|
822 | - $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $v[0]); |
|
816 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $v[0])) { |
|
817 | + $relations[$k] = [$relation, $table]; |
|
818 | + $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $v[0]); |
|
823 | 819 | } |
824 | 820 | } |
825 | - if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) { |
|
826 | - $relations[$k] = [ $relation, $table ]; |
|
827 | - $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]); |
|
821 | + if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) { |
|
822 | + $relations[$k] = [$relation, $table]; |
|
823 | + $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]); |
|
828 | 824 | } |
829 | - if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) { |
|
830 | - $relations[$k] = [ $relation, $table ]; |
|
831 | - $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]); |
|
825 | + if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) { |
|
826 | + $relations[$k] = [$relation, $table]; |
|
827 | + $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]); |
|
832 | 828 | } |
833 | 829 | foreach ($j as $kk => $v) { |
834 | 830 | foreach ($v->keymap as $kkk => $vv) { |
835 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv)) { |
|
836 | - $relations[$k] = [ $relation, $table ]; |
|
831 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vv)) { |
|
832 | + $relations[$k] = [$relation, $table]; |
|
837 | 833 | $j[$kk]->keymap[$kkk] = preg_replace( |
838 | - '(\b'.preg_quote($k . '.'). ')i', |
|
839 | - $getAlias($k) . '.', |
|
834 | + '(\b'.preg_quote($k.'.').')i', |
|
835 | + $getAlias($k).'.', |
|
840 | 836 | $vv |
841 | 837 | ); |
842 | 838 | } |
@@ -845,12 +841,12 @@ discard block |
||
845 | 841 | } |
846 | 842 | $select = []; |
847 | 843 | foreach ($f as $k => $field) { |
848 | - $select[] = $field . (!is_numeric($k) ? ' ' . $k : ''); |
|
844 | + $select[] = $field.(!is_numeric($k) ? ' '.$k : ''); |
|
849 | 845 | } |
850 | 846 | foreach ($this->withr as $name => $relation) { |
851 | 847 | if ($relation[2]) { |
852 | 848 | foreach ($relation[0]->table->getColumns() as $column) { |
853 | - $select[] = $getAlias($name) . '.' . $column . ' ' . $getAlias($name . static::SEP . $column); |
|
849 | + $select[] = $getAlias($name).'.'.$column.' '.$getAlias($name.static::SEP.$column); |
|
854 | 850 | } |
855 | 851 | } |
856 | 852 | } |
@@ -870,13 +866,13 @@ discard block |
||
870 | 866 | foreach ($v->keymap as $kk => $vv) { |
871 | 867 | $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' '; |
872 | 868 | } |
873 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
869 | + $sql .= implode(' AND ', $tmp).' '; |
|
874 | 870 | $sql .= 'LEFT JOIN '.$v->table->getFullName().' '.$getAlias($relation).' ON '; |
875 | 871 | $tmp = []; |
876 | 872 | foreach ($v->pivot_keymap as $kk => $vv) { |
877 | 873 | $tmp[] = $getAlias($relation).'.'.$vv.' = '.$alias.'.'.$kk.' '; |
878 | 874 | } |
879 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
875 | + $sql .= implode(' AND ', $tmp).' '; |
|
880 | 876 | } else { |
881 | 877 | $alias = $getAlias($relation); |
882 | 878 | |
@@ -886,22 +882,22 @@ discard block |
||
886 | 882 | $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' '; |
887 | 883 | } |
888 | 884 | if ($v->sql) { |
889 | - $tmp[] = $v->sql . ' '; |
|
885 | + $tmp[] = $v->sql.' '; |
|
890 | 886 | $par = array_merge($par, $v->par ?? []); |
891 | 887 | } |
892 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
888 | + $sql .= implode(' AND ', $tmp).' '; |
|
893 | 889 | } |
894 | 890 | } |
895 | 891 | foreach ($j as $k => $v) { |
896 | 892 | if ($v->many) { |
897 | 893 | $many = true; |
898 | 894 | } |
899 | - $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getName().' '.$k.' ON '; |
|
895 | + $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getName().' '.$k.' ON '; |
|
900 | 896 | $tmp = []; |
901 | 897 | foreach ($v->keymap as $kk => $vv) { |
902 | 898 | $tmp[] = $kk.' = '.$vv; |
903 | 899 | } |
904 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
900 | + $sql .= implode(' AND ', $tmp).' '; |
|
905 | 901 | } |
906 | 902 | if ($many && count($porder) && $this->li_of[2] === 1) { |
907 | 903 | $ids = $this->ids(); |
@@ -909,9 +905,9 @@ discard block |
||
909 | 905 | if (count($porder) > 1) { |
910 | 906 | $pkw = []; |
911 | 907 | foreach ($porder as $name) { |
912 | - $pkw[] = $name . ' = ?'; |
|
908 | + $pkw[] = $name.' = ?'; |
|
913 | 909 | } |
914 | - $pkw = '(' . implode(' AND ', $pkw) . ')'; |
|
910 | + $pkw = '('.implode(' AND ', $pkw).')'; |
|
915 | 911 | $pkp = []; |
916 | 912 | foreach ($ids as $id) { |
917 | 913 | foreach ($id as $p) { |
@@ -923,60 +919,60 @@ discard block |
||
923 | 919 | $pkp |
924 | 920 | ]; |
925 | 921 | } else { |
926 | - $w[] = [ $porder[0] . ' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids ]; |
|
922 | + $w[] = [$porder[0].' IN ('.implode(',', array_fill(0, count($ids), '?')).')', $ids]; |
|
927 | 923 | } |
928 | 924 | } else { |
929 | - $w[] = [ '1=0', [] ]; |
|
925 | + $w[] = ['1=0', []]; |
|
930 | 926 | } |
931 | 927 | } |
932 | 928 | if (count($w)) { |
933 | 929 | $sql .= 'WHERE '; |
934 | 930 | $tmp = []; |
935 | 931 | foreach ($w as $v) { |
936 | - $tmp[] = '(' . $v[0] . ')'; |
|
932 | + $tmp[] = '('.$v[0].')'; |
|
937 | 933 | $par = array_merge($par, $v[1]); |
938 | 934 | } |
939 | 935 | $sql .= implode(' AND ', $tmp).' '; |
940 | 936 | } |
941 | 937 | if (count($g)) { |
942 | - $sql .= 'GROUP BY ' . $g[0] . ' '; |
|
938 | + $sql .= 'GROUP BY '.$g[0].' '; |
|
943 | 939 | $par = array_merge($par, $g[1]); |
944 | 940 | } |
945 | 941 | if (count($h)) { |
946 | 942 | $sql .= 'HAVING '; |
947 | 943 | $tmp = []; |
948 | 944 | foreach ($h as $v) { |
949 | - $tmp[] = '(' . $v[0] . ')'; |
|
945 | + $tmp[] = '('.$v[0].')'; |
|
950 | 946 | $par = array_merge($par, $v[1]); |
951 | 947 | } |
952 | 948 | $sql .= implode(' AND ', $tmp).' '; |
953 | 949 | } |
954 | 950 | $ordered = false; |
955 | 951 | if (count($o)) { |
956 | - $sql .= 'ORDER BY ' . $o[0] . ' '; |
|
952 | + $sql .= 'ORDER BY '.$o[0].' '; |
|
957 | 953 | $par = array_merge($par, $o[1]); |
958 | 954 | $ordered = true; |
959 | 955 | } |
960 | 956 | if (!count($g) && count($porder)) { |
961 | 957 | $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC'; |
962 | - $porder = array_map(function ($v) use ($pdir) { |
|
963 | - return $v . ' ' . $pdir; |
|
958 | + $porder = array_map(function($v) use ($pdir) { |
|
959 | + return $v.' '.$pdir; |
|
964 | 960 | }, $porder); |
965 | - $sql .= ($ordered ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' '; |
|
961 | + $sql .= ($ordered ? ', ' : 'ORDER BY ').implode(', ', $porder).' '; |
|
966 | 962 | $ordered = true; |
967 | 963 | } |
968 | 964 | foreach ($this->withr as $k => $v) { |
969 | 965 | if (isset($v[3])) { |
970 | - $sql .= ($ordered ? ', ' : 'ORDER BY ') . $getAlias($k) . '.' . $v[3] . ' ' . ($v[4] ? 'DESC' : 'ASC'); |
|
966 | + $sql .= ($ordered ? ', ' : 'ORDER BY ').$getAlias($k).'.'.$v[3].' '.($v[4] ? 'DESC' : 'ASC'); |
|
971 | 967 | $ordered = true; |
972 | 968 | } |
973 | 969 | } |
974 | 970 | if ((!$many || $this->li_of[2] === 0 || !count($porder)) && $this->li_of[0]) { |
975 | 971 | if ($this->db->driverName() === 'oracle') { |
976 | - if ((int)$this->db->driverOption('version', 0) >= 12) { |
|
977 | - $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY'; |
|
972 | + if ((int) $this->db->driverOption('version', 0) >= 12) { |
|
973 | + $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY'; |
|
978 | 974 | } else { |
979 | - $f = array_map(function ($v) { |
|
975 | + $f = array_map(function($v) { |
|
980 | 976 | $v = explode(' ', trim($v), 2); |
981 | 977 | if (count($v) === 2) { |
982 | 978 | return $v[1]; |
@@ -984,16 +980,16 @@ discard block |
||
984 | 980 | $v = explode('.', $v[0], 2); |
985 | 981 | return count($v) === 2 ? $v[1] : $v[0]; |
986 | 982 | }, $select); |
987 | - $sql = "SELECT " . implode(', ', $f) . " |
|
983 | + $sql = "SELECT ".implode(', ', $f)." |
|
988 | 984 | FROM ( |
989 | 985 | SELECT tbl__.*, rownum rnum__ FROM ( |
990 | - " . $sql . " |
|
986 | + " . $sql." |
|
991 | 987 | ) tbl__ |
992 | - WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . " |
|
988 | + WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])." |
|
993 | 989 | ) WHERE rnum__ > " . $this->li_of[1]; |
994 | 990 | } |
995 | 991 | } else { |
996 | - $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1]; |
|
992 | + $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1]; |
|
997 | 993 | } |
998 | 994 | } |
999 | 995 | return $this->qiterator = new TableQueryIterator( |
@@ -1043,12 +1039,12 @@ discard block |
||
1043 | 1039 | $ret[$k] = str_repeat(' ', 255); |
1044 | 1040 | $par[] = &$ret[$k]; |
1045 | 1041 | } |
1046 | - $sql .= ' RETURNING ' . implode(',', $primary) . |
|
1047 | - ' INTO ' . implode(',', array_fill(0, count($primary), '?')); |
|
1042 | + $sql .= ' RETURNING '.implode(',', $primary). |
|
1043 | + ' INTO '.implode(',', array_fill(0, count($primary), '?')); |
|
1048 | 1044 | $this->db->query($sql, $par); |
1049 | 1045 | return $ret; |
1050 | 1046 | } elseif ($this->db->driverName() === 'postgre') { |
1051 | - $sql .= ' RETURNING ' . implode(',', $primary); |
|
1047 | + $sql .= ' RETURNING '.implode(',', $primary); |
|
1052 | 1048 | return $this->db->one($sql, $par, false); |
1053 | 1049 | } else { |
1054 | 1050 | $ret = []; |
@@ -1079,9 +1075,9 @@ discard block |
||
1079 | 1075 | } |
1080 | 1076 | $sql = 'UPDATE '.$table.' SET '; |
1081 | 1077 | $par = []; |
1082 | - $sql .= implode(', ', array_map(function ($v) { |
|
1083 | - return $v . ' = ?'; |
|
1084 | - }, array_keys($update))) . ' '; |
|
1078 | + $sql .= implode(', ', array_map(function($v) { |
|
1079 | + return $v.' = ?'; |
|
1080 | + }, array_keys($update))).' '; |
|
1085 | 1081 | $par = array_merge($par, array_values($update)); |
1086 | 1082 | if (count($this->where)) { |
1087 | 1083 | $sql .= 'WHERE '; |
@@ -1090,7 +1086,7 @@ discard block |
||
1090 | 1086 | $tmp[] = $v[0]; |
1091 | 1087 | $par = array_merge($par, $v[1]); |
1092 | 1088 | } |
1093 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
1089 | + $sql .= implode(' AND ', $tmp).' '; |
|
1094 | 1090 | } |
1095 | 1091 | if (count($this->order)) { |
1096 | 1092 | $sql .= $this->order[0]; |
@@ -1114,7 +1110,7 @@ discard block |
||
1114 | 1110 | $tmp[] = $v[0]; |
1115 | 1111 | $par = array_merge($par, $v[1]); |
1116 | 1112 | } |
1117 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
1113 | + $sql .= implode(' AND ', $tmp).' '; |
|
1118 | 1114 | } |
1119 | 1115 | if (count($this->order)) { |
1120 | 1116 | $sql .= $this->order[0]; |
@@ -1133,17 +1129,17 @@ discard block |
||
1133 | 1129 | $table = $this->definition; |
1134 | 1130 | if ($table->hasRelation($relation)) { |
1135 | 1131 | $temp = $table->getRelation($relation); |
1136 | - $this->withr[$relation] = [ $temp, $table->getName(), $select || ($this->withr[$relation][2] ?? false), $order, $desc ]; |
|
1132 | + $this->withr[$relation] = [$temp, $table->getName(), $select || ($this->withr[$relation][2] ?? false), $order, $desc]; |
|
1137 | 1133 | } else { |
1138 | 1134 | $parts = explode('.', $relation); |
1139 | 1135 | $name = array_reduce( |
1140 | 1136 | $parts, |
1141 | - function ($carry, $item) use (&$table, $select) { |
|
1137 | + function($carry, $item) use (&$table, $select) { |
|
1142 | 1138 | if (!$table->hasRelation($item)) { |
1143 | - throw new DBException('Invalid relation name: '.$table->getName().' -> ' . $item); |
|
1139 | + throw new DBException('Invalid relation name: '.$table->getName().' -> '.$item); |
|
1144 | 1140 | } |
1145 | 1141 | $relation = $table->getRelation($item); |
1146 | - $name = $carry ? $carry . static::SEP . $item : $item; |
|
1142 | + $name = $carry ? $carry.static::SEP.$item : $item; |
|
1147 | 1143 | $this->withr[$name] = [ |
1148 | 1144 | $relation, |
1149 | 1145 | $carry ?? $table->getName(), |
@@ -1196,9 +1192,9 @@ discard block |
||
1196 | 1192 | } |
1197 | 1193 | |
1198 | 1194 | $aliases = []; |
1199 | - $getAlias = function ($name) use (&$aliases) { |
|
1195 | + $getAlias = function($name) use (&$aliases) { |
|
1200 | 1196 | // to bypass use: return $name; |
1201 | - return $aliases[$name] = $aliases[$name] ?? 'alias' . static::SEP . count($aliases); |
|
1197 | + return $aliases[$name] = $aliases[$name] ?? 'alias'.static::SEP.count($aliases); |
|
1202 | 1198 | }; |
1203 | 1199 | |
1204 | 1200 | $table = $this->definition->getName(); |
@@ -1210,65 +1206,65 @@ discard block |
||
1210 | 1206 | $h = $this->having; |
1211 | 1207 | $o = $this->order; |
1212 | 1208 | $g = $this->group; |
1213 | - $j = array_map(function ($v) { |
|
1209 | + $j = array_map(function($v) { |
|
1214 | 1210 | return clone $v; |
1215 | 1211 | }, $this->joins); |
1216 | 1212 | foreach ($this->definition->getRelations() as $k => $v) { |
1217 | 1213 | foreach ($w as $kk => $vv) { |
1218 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) { |
|
1219 | - $relations[$k] = [ $v, $table ]; |
|
1220 | - $w[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]); |
|
1214 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) { |
|
1215 | + $relations[$k] = [$v, $table]; |
|
1216 | + $w[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]); |
|
1221 | 1217 | } |
1222 | 1218 | } |
1223 | - if (isset($o[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $o[0])) { |
|
1224 | - $relations[$k] = [ $v, $table ]; |
|
1225 | - $o[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[0]); |
|
1226 | - $o[2] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $o[2]); |
|
1219 | + if (isset($o[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $o[0])) { |
|
1220 | + $relations[$k] = [$v, $table]; |
|
1221 | + $o[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[0]); |
|
1222 | + $o[2] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $o[2]); |
|
1227 | 1223 | } |
1228 | 1224 | foreach ($h as $kk => $vv) { |
1229 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vv[0])) { |
|
1230 | - $relations[$k] = [ $v, $table ]; |
|
1231 | - $h[$kk][0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vv[0]); |
|
1225 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vv[0])) { |
|
1226 | + $relations[$k] = [$v, $table]; |
|
1227 | + $h[$kk][0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vv[0]); |
|
1232 | 1228 | } |
1233 | 1229 | } |
1234 | - if (isset($g[0]) && preg_match('(\b'.preg_quote($k . '.'). ')i', $g[0])) { |
|
1235 | - $relations[$k] = [ $v, $table ]; |
|
1236 | - $g[0] = preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $g[0]); |
|
1230 | + if (isset($g[0]) && preg_match('(\b'.preg_quote($k.'.').')i', $g[0])) { |
|
1231 | + $relations[$k] = [$v, $table]; |
|
1232 | + $g[0] = preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $g[0]); |
|
1237 | 1233 | } |
1238 | 1234 | foreach ($j as $kk => $vv) { |
1239 | 1235 | foreach ($vv->keymap as $kkk => $vvv) { |
1240 | - if (preg_match('(\b'.preg_quote($k . '.'). ')i', $vvv)) { |
|
1241 | - $relations[$k] = [ $v, $table ]; |
|
1236 | + if (preg_match('(\b'.preg_quote($k.'.').')i', $vvv)) { |
|
1237 | + $relations[$k] = [$v, $table]; |
|
1242 | 1238 | $j[$kk]->keymap[$kkk] = |
1243 | - preg_replace('(\b'.preg_quote($k . '.'). ')i', $getAlias($k) . '.', $vvv); |
|
1239 | + preg_replace('(\b'.preg_quote($k.'.').')i', $getAlias($k).'.', $vvv); |
|
1244 | 1240 | } |
1245 | 1241 | } |
1246 | 1242 | } |
1247 | 1243 | } |
1248 | 1244 | |
1249 | - $key = array_map(function ($v) use ($table) { |
|
1250 | - return $table . '.' . $v; |
|
1245 | + $key = array_map(function($v) use ($table) { |
|
1246 | + return $table.'.'.$v; |
|
1251 | 1247 | }, $this->pkey); |
1252 | 1248 | $own = false; |
1253 | 1249 | $dir = 'ASC'; |
1254 | 1250 | if (count($o)) { |
1255 | 1251 | $dir = strpos($o[0], ' DESC') ? 'DESC' : 'ASC'; |
1256 | - $own = strpos($o[2], $table . '.') === 0; |
|
1252 | + $own = strpos($o[2], $table.'.') === 0; |
|
1257 | 1253 | } |
1258 | 1254 | |
1259 | 1255 | $dst = $key; |
1260 | 1256 | if (count($o)) { |
1261 | 1257 | if ($own) { |
1262 | 1258 | // if using own table - do not use max/min in order - that will prevent index usage |
1263 | - $dst[] = $o[2] . ' orderbyfix___'; |
|
1259 | + $dst[] = $o[2].' orderbyfix___'; |
|
1264 | 1260 | } else { |
1265 | - $dst[] = 'MAX(' . $o[2] . ') orderbyfix___'; |
|
1261 | + $dst[] = 'MAX('.$o[2].') orderbyfix___'; |
|
1266 | 1262 | } |
1267 | 1263 | } |
1268 | 1264 | $dst = array_unique($dst); |
1269 | 1265 | |
1270 | 1266 | $par = []; |
1271 | - $sql = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' '; |
|
1267 | + $sql = 'SELECT DISTINCT '.implode(', ', $dst).' FROM '.$this->definition->getFullName().' '; |
|
1272 | 1268 | foreach ($relations as $k => $v) { |
1273 | 1269 | $table = $v[1] !== $this->definition->getName() ? $getAlias($v[1]) : $v[1]; |
1274 | 1270 | $v = $v[0]; |
@@ -1279,13 +1275,13 @@ discard block |
||
1279 | 1275 | foreach ($v->keymap as $kk => $vv) { |
1280 | 1276 | $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' '; |
1281 | 1277 | } |
1282 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
1278 | + $sql .= implode(' AND ', $tmp).' '; |
|
1283 | 1279 | $sql .= 'LEFT JOIN '.$v->table->getName().' '.$getAlias($k).' ON '; |
1284 | 1280 | $tmp = []; |
1285 | 1281 | foreach ($v->pivot_keymap as $kk => $vv) { |
1286 | 1282 | $tmp[] = $getAlias($k).'.'.$vv.' = '.$alias.'.'.$kk.' '; |
1287 | 1283 | } |
1288 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
1284 | + $sql .= implode(' AND ', $tmp).' '; |
|
1289 | 1285 | } else { |
1290 | 1286 | $alias = $getAlias($k); |
1291 | 1287 | $sql .= 'LEFT JOIN '.$v->table->getName().' '.$alias.' ON '; |
@@ -1294,37 +1290,37 @@ discard block |
||
1294 | 1290 | $tmp[] = $table.'.'.$kk.' = '.$alias.'.'.$vv.' '; |
1295 | 1291 | } |
1296 | 1292 | if ($v->sql) { |
1297 | - $tmp[] = $v->sql . ' '; |
|
1293 | + $tmp[] = $v->sql.' '; |
|
1298 | 1294 | $par = array_merge($par, $v->par ?? []); |
1299 | 1295 | } |
1300 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
1296 | + $sql .= implode(' AND ', $tmp).' '; |
|
1301 | 1297 | } |
1302 | 1298 | } |
1303 | 1299 | foreach ($j as $k => $v) { |
1304 | - $sql .= ($v->many ? 'LEFT ' : '' ) . 'JOIN '.$v->table->getName().' '.$k.' ON '; |
|
1300 | + $sql .= ($v->many ? 'LEFT ' : '').'JOIN '.$v->table->getName().' '.$k.' ON '; |
|
1305 | 1301 | $tmp = []; |
1306 | 1302 | foreach ($v->keymap as $kk => $vv) { |
1307 | 1303 | $tmp[] = $kk.' = '.$vv; |
1308 | 1304 | } |
1309 | - $sql .= implode(' AND ', $tmp) . ' '; |
|
1305 | + $sql .= implode(' AND ', $tmp).' '; |
|
1310 | 1306 | } |
1311 | 1307 | if (count($w)) { |
1312 | 1308 | $sql .= 'WHERE '; |
1313 | 1309 | $tmp = []; |
1314 | 1310 | foreach ($w as $v) { |
1315 | - $tmp[] = '(' . $v[0] . ')'; |
|
1311 | + $tmp[] = '('.$v[0].')'; |
|
1316 | 1312 | $par = array_merge($par, $v[1]); |
1317 | 1313 | } |
1318 | 1314 | $sql .= implode(' AND ', $tmp).' '; |
1319 | 1315 | } |
1320 | 1316 | if (!$own) { |
1321 | - $sql .= 'GROUP BY ' . implode(', ', $key) . ' '; |
|
1317 | + $sql .= 'GROUP BY '.implode(', ', $key).' '; |
|
1322 | 1318 | } |
1323 | 1319 | if (count($h)) { |
1324 | 1320 | $sql .= 'HAVING '; |
1325 | 1321 | $tmp = []; |
1326 | 1322 | foreach ($h as $v) { |
1327 | - $tmp[] = '(' . $v[0] . ')'; |
|
1323 | + $tmp[] = '('.$v[0].')'; |
|
1328 | 1324 | $par = array_merge($par, $v[1]); |
1329 | 1325 | } |
1330 | 1326 | $sql .= implode(' AND ', $tmp).' '; |
@@ -1332,38 +1328,38 @@ discard block |
||
1332 | 1328 | if (count($o)) { |
1333 | 1329 | $sql .= 'ORDER BY '; |
1334 | 1330 | if ($own) { |
1335 | - $sql .= $o[2] . ' ' . $dir; |
|
1331 | + $sql .= $o[2].' '.$dir; |
|
1336 | 1332 | } else { |
1337 | - $sql .= 'MAX('.$o[2].') ' . $dir; |
|
1333 | + $sql .= 'MAX('.$o[2].') '.$dir; |
|
1338 | 1334 | } |
1339 | 1335 | } |
1340 | 1336 | $porder = []; |
1341 | 1337 | $pdir = (count($o) && strpos($o[0], 'DESC') !== false) ? 'DESC' : 'ASC'; |
1342 | 1338 | foreach ($this->definition->getPrimaryKey() as $field) { |
1343 | - $porder[] = $this->getColumn($field)['name'] . ' ' . $pdir; |
|
1339 | + $porder[] = $this->getColumn($field)['name'].' '.$pdir; |
|
1344 | 1340 | } |
1345 | 1341 | if (count($porder)) { |
1346 | - $sql .= (count($o) ? ', ' : 'ORDER BY ') . implode(', ', $porder) . ' '; |
|
1342 | + $sql .= (count($o) ? ', ' : 'ORDER BY ').implode(', ', $porder).' '; |
|
1347 | 1343 | } |
1348 | 1344 | |
1349 | 1345 | if ($this->li_of[0]) { |
1350 | 1346 | if ($this->db->driverName() === 'oracle') { |
1351 | - if ((int)$this->db->driverOption('version', 0) >= 12) { |
|
1352 | - $sql .= 'OFFSET ' . $this->li_of[1] . ' ROWS FETCH NEXT ' . $this->li_of[0] . ' ROWS ONLY'; |
|
1347 | + if ((int) $this->db->driverOption('version', 0) >= 12) { |
|
1348 | + $sql .= 'OFFSET '.$this->li_of[1].' ROWS FETCH NEXT '.$this->li_of[0].' ROWS ONLY'; |
|
1353 | 1349 | } else { |
1354 | - $sql = "SELECT " . implode(', ', $dst) . " |
|
1350 | + $sql = "SELECT ".implode(', ', $dst)." |
|
1355 | 1351 | FROM ( |
1356 | 1352 | SELECT tbl__.*, rownum rnum__ FROM ( |
1357 | - " . $sql . " |
|
1353 | + " . $sql." |
|
1358 | 1354 | ) tbl__ |
1359 | - WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1]) . " |
|
1355 | + WHERE rownum <= " . ($this->li_of[0] + $this->li_of[1])." |
|
1360 | 1356 | ) WHERE rnum__ > " . $this->li_of[1]; |
1361 | 1357 | } |
1362 | 1358 | } else { |
1363 | - $sql .= 'LIMIT ' . $this->li_of[0] . ' OFFSET ' . $this->li_of[1]; |
|
1359 | + $sql .= 'LIMIT '.$this->li_of[0].' OFFSET '.$this->li_of[1]; |
|
1364 | 1360 | } |
1365 | 1361 | } |
1366 | - return array_map(function ($v) { |
|
1362 | + return array_map(function($v) { |
|
1367 | 1363 | if (array_key_exists('orderbyfix___', $v)) { |
1368 | 1364 | unset($v['orderbyfix___']); |
1369 | 1365 | } |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | public function collection(TableQueryIterator $iterator, Table $definition) : Collection |
53 | 53 | { |
54 | 54 | return Collection::from($iterator) |
55 | - ->map(function ($v) use ($definition) { |
|
55 | + ->map(function($v) use ($definition) { |
|
56 | 56 | return $this->entity($definition, $v); |
57 | 57 | }); |
58 | 58 | } |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | $definition = $entity->definition(); |
128 | 128 | foreach ($definition->getColumns() as $column) { |
129 | 129 | if (!array_key_exists($column, $data)) { |
130 | - $entity->__lazyProperty($column, function () use ($definition, $primary, $column) { |
|
130 | + $entity->__lazyProperty($column, function() use ($definition, $primary, $column) { |
|
131 | 131 | $query = $this->db->table($definition->getFullName()); |
132 | 132 | foreach ($primary as $k => $v) { |
133 | 133 | $query->filter($k, $v); |
@@ -141,12 +141,12 @@ discard block |
||
141 | 141 | $name, |
142 | 142 | array_key_exists($name, $data) && isset($data[$name]) ? |
143 | 143 | ($relation->many ? |
144 | - array_map(function ($v) use ($relation) { |
|
144 | + array_map(function($v) use ($relation) { |
|
145 | 145 | return $this->entity($relation->table, $v); |
146 | 146 | }, $data[$name]) : |
147 | 147 | $this->entity($relation->table, $data[$name]) |
148 | 148 | ) : |
149 | - function (array $columns = null, string $order = null, bool $desc = false) use ($entity, $definition, $relation, $data) { |
|
149 | + function(array $columns = null, string $order = null, bool $desc = false) use ($entity, $definition, $relation, $data) { |
|
150 | 150 | $query = $this->db->table($relation->table->getFullName(), true); |
151 | 151 | if ($columns !== null) { |
152 | 152 | $query->columns($columns); |
@@ -172,7 +172,7 @@ discard block |
||
172 | 172 | ); |
173 | 173 | } |
174 | 174 | foreach ($definition->getPrimaryKey() as $v) { |
175 | - $query->filter($nm . '.' . $v, $data[$v] ?? null); |
|
175 | + $query->filter($nm.'.'.$v, $data[$v] ?? null); |
|
176 | 176 | } |
177 | 177 | } else { |
178 | 178 | foreach ($relation->keymap as $k => $v) { |
@@ -183,8 +183,7 @@ discard block |
||
183 | 183 | $query->sort($order, $desc); |
184 | 184 | } |
185 | 185 | return $relation->many ? |
186 | - $query->iterator() : |
|
187 | - $query[0]; |
|
186 | + $query->iterator() : $query[0]; |
|
188 | 187 | } |
189 | 188 | ); |
190 | 189 | } |
@@ -47,8 +47,7 @@ |
||
47 | 47 | if (isset($this->definition->getRelations()[$method])) { |
48 | 48 | if (array_key_exists($method, $this->fetched)) { |
49 | 49 | return is_callable($this->fetched[$method]) ? |
50 | - $this->fetched[$method] = call_user_func_array($this->fetched[$method], $args) : |
|
51 | - $this->fetched[$method]; |
|
50 | + $this->fetched[$method] = call_user_func_array($this->fetched[$method], $args) : $this->fetched[$method]; |
|
52 | 51 | } |
53 | 52 | } |
54 | 53 | return null; |