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

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