Code Duplication    Length = 25-27 lines in 3 locations

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

@@ 420-444 (lines=25) @@
417
     *
418
     * @return \Closure
419
     */
420
    private function havingWrapper()
421
    {
422
        return function ($parameter) {
423
            if ($parameter instanceof FragmentInterface) {
424
                //We are only not creating bindings for plan fragments
425
                if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) {
426
                    return $parameter;
427
                }
428
            }
429
430
            if (is_array($parameter)) {
431
                throw new BuilderException("Arrays must be wrapped with Parameter instance.");
432
            }
433
434
            //Wrapping all values with ParameterInterface
435
            if (!$parameter instanceof ParameterInterface) {
436
                $parameter = new Parameter($parameter, Parameter::DETECT_TYPE);
437
            };
438
439
            //Let's store to sent to driver when needed
440
            $this->havingParameters[] = $parameter;
441
442
            return $parameter;
443
        };
444
    }
445
}

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

@@ 345-369 (lines=25) @@
342
     *
343
     * @return \Closure
344
     */
345
    private function whereWrapper()
346
    {
347
        return function ($parameter) {
348
            if ($parameter instanceof FragmentInterface) {
349
                //We are only not creating bindings for plan fragments
350
                if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) {
351
                    return $parameter;
352
                }
353
            }
354
355
            if (is_array($parameter)) {
356
                throw new BuilderException("Arrays must be wrapped with Parameter instance.");
357
            }
358
359
            //Wrapping all values with ParameterInterface
360
            if (!$parameter instanceof ParameterInterface) {
361
                $parameter = new Parameter($parameter, Parameter::DETECT_TYPE);
362
            };
363
364
            //Let's store to sent to driver when needed
365
            $this->whereParameters[] = $parameter;
366
367
            return $parameter;
368
        };
369
    }
370
}

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

@@ 335-361 (lines=27) @@
332
     *
333
     * @return \Closure
334
     */
335
    private function whereWrapper()
336
    {
337
        return function ($parameter) {
338
            if ($parameter instanceof FragmentInterface) {
339
                //We are only not creating bindings for plan fragments
340
                if (!$parameter instanceof ParameterInterface && !$parameter instanceof QueryBuilder) {
341
                    return $parameter;
342
                }
343
344
                return $parameter;
345
            }
346
347
            if (is_array($parameter)) {
348
                throw new BuilderException("Arrays must be wrapped with Parameter instance.");
349
            }
350
351
            //Wrapping all values with ParameterInterface
352
            if (!$parameter instanceof ParameterInterface) {
353
                $parameter = new Parameter($parameter, Parameter::DETECT_TYPE);
354
            };
355
356
            //Let's store to sent to driver when needed
357
            $this->onParameters[] = $parameter;
358
359
            return $parameter;
360
        };
361
    }
362
}