Конструкция 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