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