| @@ 380-404 (lines=25) @@ | ||
| 377 | * |
|
| 378 | * @return \Closure |
|
| 379 | */ |
|
| 380 | private function whereWrapper() |
|
| 381 | { |
|
| 382 | return function ($parameter) { |
|
| 383 | if ($parameter instanceof FragmentInterface) { |
|
| 384 | //We are only not creating bindings for plan fragments |
|
| 385 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) { |
|
| 386 | return $parameter; |
|
| 387 | } |
|
| 388 | } |
|
| 389 | ||
| 390 | if (is_array($parameter)) { |
|
| 391 | throw new BuilderException('Arrays must be wrapped with Parameter instance'); |
|
| 392 | } |
|
| 393 | ||
| 394 | //Wrapping all values with ParameterInterface |
|
| 395 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) { |
|
| 396 | $parameter = new Parameter($parameter, Parameter::DETECT_TYPE); |
|
| 397 | }; |
|
| 398 | ||
| 399 | //Let's store to sent to driver when needed |
|
| 400 | $this->whereParameters[] = $parameter; |
|
| 401 | ||
| 402 | return $parameter; |
|
| 403 | }; |
|
| 404 | } |
|
| 405 | } |
|
| 406 | ||
| @@ 382-406 (lines=25) @@ | ||
| 379 | * |
|
| 380 | * @return \Closure |
|
| 381 | */ |
|
| 382 | private function onWhereWrapper() |
|
| 383 | { |
|
| 384 | return function ($parameter) { |
|
| 385 | if ($parameter instanceof FragmentInterface) { |
|
| 386 | //We are only not creating bindings for plan fragments |
|
| 387 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) { |
|
| 388 | return $parameter; |
|
| 389 | } |
|
| 390 | } |
|
| 391 | ||
| 392 | if (is_array($parameter)) { |
|
| 393 | throw new BuilderException('Arrays must be wrapped with Parameter instance'); |
|
| 394 | } |
|
| 395 | ||
| 396 | //Wrapping all values with ParameterInterface |
|
| 397 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) { |
|
| 398 | $parameter = new Parameter($parameter, Parameter::DETECT_TYPE); |
|
| 399 | }; |
|
| 400 | ||
| 401 | //Let's store to sent to driver when needed |
|
| 402 | $this->onParameters[] = $parameter; |
|
| 403 | ||
| 404 | return $parameter; |
|
| 405 | }; |
|
| 406 | } |
|
| 407 | } |
|
| 408 | ||
| @@ 454-479 (lines=26) @@ | ||
| 451 | * |
|
| 452 | * @return \Closure |
|
| 453 | */ |
|
| 454 | private function havingWrapper() |
|
| 455 | { |
|
| 456 | return function ($parameter) { |
|
| 457 | if ($parameter instanceof FragmentInterface) { |
|
| 458 | ||
| 459 | //We are only not creating bindings for plan fragments |
|
| 460 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) { |
|
| 461 | return $parameter; |
|
| 462 | } |
|
| 463 | } |
|
| 464 | ||
| 465 | if (is_array($parameter)) { |
|
| 466 | throw new BuilderException('Arrays must be wrapped with Parameter instance'); |
|
| 467 | } |
|
| 468 | ||
| 469 | //Wrapping all values with ParameterInterface |
|
| 470 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) { |
|
| 471 | $parameter = new Parameter($parameter, Parameter::DETECT_TYPE); |
|
| 472 | }; |
|
| 473 | ||
| 474 | //Let's store to sent to driver when needed |
|
| 475 | $this->havingParameters[] = $parameter; |
|
| 476 | ||
| 477 | return $parameter; |
|
| 478 | }; |
|
| 479 | } |
|
| 480 | } |
|
| 481 | ||