Конструкция switch в шаблонизаторе Blade для Laravel 5+

К сожалению, из коробки ларавел не поддерживает конструкцию типа switch. Хочется написать так:

@switch($value)
    @case(1)
        <p>Первый вариант<p>
    @break

    @case(2)
        <p>Второй вариант<p>
    @break

    @default
        <p>Дефолтное значение<p>
    @break
@endswitch

,но это работать не будет.

Мы имеем возможность расширять функционал шаблонизатора Blade, и для того, чтобы вышеуказанная конструкция заработала, вставляем в файл app/Providers/AppServiceProvider.php в метод boot() следующий код:

     Blade::extend(function($value, $compiler)
        {
            $value = preg_replace('/(?<=\s)@switch\((.*)\)(\s*)@case\((.*)\)(?=\s)/', '<?php switch($1):$2case $3: ?>', $value);
            $value = preg_replace('/(?<=\s)@endswitch(?=\s)/', '<?php endswitch; ?>', $value);

            $value = preg_replace('/(?<=\s)@case\((.*)\)(?=\s)/', '<?php case $1: ?>', $value);
            $value = preg_replace('/(?<=\s)@default(?=\s)/', '<?php default: ?>', $value);
            $value = preg_replace('/(?<=\s)@break(?=\s)/', '<?php break; ?>', $value);

            return $value;
        }); 

Теперь мы можем в любых своих шаблонах blade применять конструкцию switch case