| @@ 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 | ||
| @@ 255-280 (lines=26) @@ | ||
| 252 | * |
|
| 253 | * @return \Closure |
|
| 254 | */ |
|
| 255 | private function havingWrapper() |
|
| 256 | { |
|
| 257 | return function ($parameter) { |
|
| 258 | if ($parameter instanceof FragmentInterface) { |
|
| 259 | ||
| 260 | //We are only not creating bindings for plan fragments |
|
| 261 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) { |
|
| 262 | return $parameter; |
|
| 263 | } |
|
| 264 | } |
|
| 265 | ||
| 266 | if (is_array($parameter)) { |
|
| 267 | throw new BuilderException('Arrays must be wrapped with Parameter instance'); |
|
| 268 | } |
|
| 269 | ||
| 270 | //Wrapping all values with ParameterInterface |
|
| 271 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) { |
|
| 272 | $parameter = new Parameter($parameter, Parameter::DETECT_TYPE); |
|
| 273 | }; |
|
| 274 | ||
| 275 | //Let's store to sent to driver when needed |
|
| 276 | $this->havingParameters[] = $parameter; |
|
| 277 | ||
| 278 | return $parameter; |
|
| 279 | }; |
|
| 280 | } |
|
| 281 | } |
|
| 282 | ||
| @@ 384-408 (lines=25) @@ | ||
| 381 | * |
|
| 382 | * @return \Closure |
|
| 383 | */ |
|
| 384 | private function whereWrapper() |
|
| 385 | { |
|
| 386 | return function ($parameter) { |
|
| 387 | if ($parameter instanceof FragmentInterface) { |
|
| 388 | //We are only not creating bindings for plan fragments |
|
| 389 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) { |
|
| 390 | return $parameter; |
|
| 391 | } |
|
| 392 | } |
|
| 393 | ||
| 394 | if (is_array($parameter)) { |
|
| 395 | throw new BuilderException('Arrays must be wrapped with Parameter instance'); |
|
| 396 | } |
|
| 397 | ||
| 398 | //Wrapping all values with ParameterInterface |
|
| 399 | if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) { |
|
| 400 | $parameter = new Parameter($parameter, Parameter::DETECT_TYPE); |
|
| 401 | }; |
|
| 402 | ||
| 403 | //Let's store to sent to driver when needed |
|
| 404 | $this->whereParameters[] = $parameter; |
|
| 405 | ||
| 406 | return $parameter; |
|
| 407 | }; |
|
| 408 | } |
|
| 409 | } |
|
| 410 | ||