Code Duplication    Length = 25-26 lines in 3 locations

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

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

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