Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total  
 
 
 
CRAP
100.00% covered (success)
100.00%
33 / 33
<?php
return [
    // AssignmentDirectives
    'set'        => [    // https://regex101.com/r/uD8bI1/1
        'pattern'     => '/(?<!\w)(\s*)@set\s*\(\s*\${0,1}[\'"\s]*(.*?)[\'"\s]*,\s*([\W\w^]*?)\)\s*$/m',
        'replacement' => <<<'EOT'
$1<?php \$$2 = $3; $__data['$2'] = $3; ?>
EOT
    ],
    'unset'      => [
        'pattern'     => '/(?<!\\w)(\\s*)@unset(?:\\s*)\\((?:\\s*)(?:\\$|(?:\'|\\"|))(.*?)(?:\'|\\"|)(?:\\s*)\\)/',
        'replacement' => <<<'EOT'
$1<?php unset(\$$2); ?>
EOT
    ],
    // DebugDirectives
    'debug'      => [
        'pattern'     => '/(?<!\\w)(\\s*)@debug(?:\\s*)\\((?:\\s*)([^()]+)*\\)/',
        'replacement' => <<<'EOT'
$1<h1>DEBUG OUTPUT:</h1>
<pre><code>
    <?php
    if(class_exists('Kint')) {
        Kint::dump($2);
    } elseif(class_exists('Illuminate\Support\Debug\HtmlDumper')){
        \Illuminate\Support\Debug\HtmlDumper::dump($2);
    } else {
        var_dump($2);
    }
    ?>
</code></pre>
EOT
    ],
    'breakpoint' => [
        'pattern'     => '/(?<!\\w)(\\s*)@breakpoint(\\s*)/',
        'replacement' => <<<'EOT'
<!-- breakpoint --><?php
if(function_exists('xdebug_break')){
    var_dump(xdebug_break());
}
?>
EOT
    ],
    // EmbeddingDirectives
    'embed' => [
        'pattern' => '/(?<!\\w)(\\s*)@embed\\s*\\((.*?)\\)\\s*$((?>(?!@(?:end)?embed).|(?0))*)@endembed/sm',
        'replacement' => <<<'EOT'
$1<?php app('blade.helpers')->get('embed')->start($2); ?>
$1<?php app('blade.helpers')->get('embed')->current()->setData(\$__data)->setContent(<<<'EOT_'
$3
\EOT_
); ?>
$1<?php app('blade.helpers')->get('embed')->end(); ?>
EOT
    ],
    // ForeachDirectives
    'foreach'   => [
        'pattern'     => '/(?<!\\w)(\\s*)@foreach(?:\\s*)\\((.*)(?:\\sas)(.*)\\)/',
        'replacement' => <<<'EOT'
$1<?php
app('blade.helpers')->get('loop')->newLoop($2);
foreach($2 as $3):
    $loop = app('blade.helpers')->get('loop')->loop();
?>
EOT
    ],
    'endforeach'  => [
        'pattern'     => '/(?<!\\w)(\\s*)@endforeach(\\s*)/',
        'replacement' => <<<'EOT'
$1<?php
app('blade.helpers')->get('loop')->looped();
endforeach;
app('blade.helpers')->get('loop')->endLoop($loop);
?>$2
EOT
    ],
    'break'      => [
        'pattern'     => '/(?<!\\w)(\\s*)@break(\\s*)/',
        'replacement' => <<<'EOT'
$1<?php
    break;
?>$2
EOT
    ],
    'continue'   => [
        'pattern'     => '/(?<!\\w)(\\s*)@continue(\\s*)/',
        'replacement' => <<<'EOT'
$1<?php
app('blade.helpers')->get('loop')->looped();
continue;
?>$2
EOT
    ],
    // MacroDirectives
    'macro'       => [
        'pattern'     => '/(?<!\\w)(\\s*)@macro(?:\\s*)\\((?:\\s*)[\'"]([\\w\\d]*)[\'"](?:,|)(.*)\\)/',
        'replacement' => <<<'EOT'
$1<?php echo app("blade.helpers")->$2($3); ?>
EOT
    ],
    'macrodef'     => [
        'pattern'     => '/(?<!\w)(\s*)@macrodef(?:\s*)\((?:\s*)[\'"]([\w\d]*)[\'"],(.*)\)/',
        'replacement' => <<<'EOT'
$1<?php app("blade.helpers")->macro("$2", function($3){ ?>
EOT
    ],
    'endmacro'    => [
        'pattern'     => '/(?<!\\w)(\\s*)@endmacro(\\s*)/',
        'replacement' => <<<'EOT'
$1<?php }); ?>$2
EOT
    ],
    // MarkdownDirectives
    'markdown'  => [
        'pattern'     => '/(?<!\\w)(\\s*)@markdown(?!\\()(\\s*)/',
        'replacement' => <<<'EOT'
$1<?php echo app("blade.helpers")->get('markdown')->parse(<<<'EOT'$2
EOT
    ],
    'endmarkdown' => [
        'pattern'     => '/(?<!\\w)(\\s*)@endmarkdown(\\s*)/',
        'replacement' => "$1\nEOT\n); ?>$2"
    ],
    // MinifyDirectives
    'minify'    => [
        'pattern'     => '/(?<!\\w)(\\s*)@minify(\\s*\\(.*\\))/',
        'replacement' => <<<'EOT'
$1<?php echo app("blade.helpers")->get('minifier')->open$2; ?>
EOT
    ],
    'endminify'   => [
        'pattern'     => '/(?<!\\w)(\\s*)@endminify(\\s*)/',
        'replacement' => <<<'EOT'
$1<?php echo app("blade.helpers")->get('minifier')->close(); ?>
EOT
    ],
];