Code Duplication    Length = 18-27 lines in 2 locations

src/BladeLoopServiceProvider.php 2 locations

@@ 38-64 (lines=27) @@
35
     *
36
     * @return BladeCompiler
37
     */
38
    private function addLoopDirectives(BladeCompiler $blade)
39
    {
40
        $blade->extend(function ($value) {
41
            $pattern = '/(?<!\\w)(\\s*)@loop(?:\\s*)\\((.*)(?:\\sas\\s)([^)]*)\\)/';
42
            $replacement = <<<'EOT'
43
$1<?php
44
$loop = app('blade.loop')->newLoop($2);
45
foreach($loop->getItems() as $3):
46
    $loop = app('blade.loop')->loop();
47
?>
48
EOT;
49
            return preg_replace($pattern, $replacement, $value);
50
        });
51
52
        $blade->extend(function ($value) {
53
            $pattern = '/(?<!\\w)(\\s*)@endloop(\\s*)/';
54
            $replacement = <<<'EOT'
55
$1<?php
56
endforeach;
57
app('blade.loop')->endLoop($loop);
58
?>$2
59
EOT;
60
            return preg_replace($pattern, $replacement, $value);
61
        });
62
63
        return $blade;
64
    }
65
66
    /**
67
     * Extend blade by continue and break directives.
@@ 73-90 (lines=18) @@
70
     *
71
     * @return BladeCompiler
72
     */
73
    private function addLoopControlDirectives(BladeCompiler $blade)
74
    {
75
        $blade->extend(function ($value) {
76
            $pattern = '/(?<!\\w)(\\s*)@continue\\s*\\(([^)]*)\\)/';
77
            $replacement = '$1<?php if ($2) { continue; } ?>';
78
79
            return preg_replace($pattern, $replacement, $value);
80
        });
81
82
        $blade->extend(function ($value) {
83
            $pattern = '/(?<!\\w)(\\s*)@break\\s*\\(([^)]*)\\)/';
84
            $replacement = '$1<?php if ($2) { break; } ?>';
85
86
            return preg_replace($pattern, $replacement, $value);
87
        });
88
89
        return $blade;
90
    }
91
}
92