Code Duplication    Length = 25-26 lines in 3 locations

source/Spiral/Database/Builders/Prototypes/AbstractSelect.php 1 location

@@ 463-488 (lines=26) @@
460
     *
461
     * @return \Closure
462
     */
463
    private function havingWrapper()
464
    {
465
        return function ($parameter) {
466
            if ($parameter instanceof FragmentInterface) {
467
468
                //We are only not creating bindings for plan fragments
469
                if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) {
470
                    return $parameter;
471
                }
472
            }
473
474
            if (is_array($parameter)) {
475
                throw new BuilderException('Arrays must be wrapped with Parameter instance');
476
            }
477
478
            //Wrapping all values with ParameterInterface
479
            if (!$parameter instanceof ParameterInterface && !$parameter instanceof ExpressionInterface) {
480
                $parameter = new Parameter($parameter, Parameter::DETECT_TYPE);
481
            };
482
483
            //Let's store to sent to driver when needed
484
            $this->havingParameters[] = $parameter;
485
486
            return $parameter;
487
        };
488
    }
489
}
490

source/Spiral/Database/Builders/Prototypes/AbstractWhere.php 1 location

@@ 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

source/Spiral/Database/Builders/Traits/JoinsTrait.php 1 location

@@ 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