| @@ 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 | ||
| @@ 395-420 (lines=26) @@ | ||
| 392 | * |
|
| 393 | * @return \Closure |
|
| 394 | */ |
|
| 395 | private function havingWrapper() |
|
| 396 | { |
|
| 397 | return function ($parameter) { |
|
| 398 | if ($parameter instanceof FragmentInterface) { |
|
| 399 | ||
| 400 | //We are only not creating bindings for plan fragments |
|
| 401 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) { |
|
| 402 | return $parameter; |
|
| 403 | } |
|
| 404 | } |
|
| 405 | ||
| 406 | if (is_array($parameter)) { |
|
| 407 | throw new BuilderException('Arrays must be wrapped with Parameter instance'); |
|
| 408 | } |
|
| 409 | ||
| 410 | //Wrapping all values with ParameterInterface |
|
| 411 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) { |
|
| 412 | $parameter = new Parameter($parameter, Parameter::DETECT_TYPE); |
|
| 413 | }; |
|
| 414 | ||
| 415 | //Let's store to sent to driver when needed |
|
| 416 | $this->havingParameters[] = $parameter; |
|
| 417 | ||
| 418 | return $parameter; |
|
| 419 | }; |
|
| 420 | } |
|
| 421 | } |
|
| 422 | ||