Шаблонизатор Mikbill
Директивы
Вводятся ярлыки для общих структур PHP, таких как условные операторы и циклы.
Условные Выражения
Вы можете создавать операторы if, используя директивы @if, @elseif, @else и @endif. Эти директивы функционируют идентично своим PHP-аналогам:
@if(count($records) === 1) {{ "У меня есть одна запись!" }} @elseif(count($records) > 1) {{ "У меня есть несколько записей!" }} @else {{ "У меня нет записей!" }} @endif
Циклы
Помимо условных операторов, вводятся простые директивы для работы с циклами в PHP. Каждая из этих директив функционирует идентично своим аналогам в PHP:
@foreach($users as $user) <p>Это пользователь {{ $user->id }}</p> @endforeach
При использовании циклов вы также можете пропустить текущую итерацию или завершить цикл, используя директивы @continue и @break:
@foreach($users as $user) @if ($user->type == 1) @continue @endif <li>{{ $user->name }}</li> @if ($user->number == 5) @break @endif @endforeach
Компоненты
Компонент позволяет "подключить" часть кода из спец. шаблона в текущий шаблон. Все переменные, доступные в родительском шаблоне, будут также доступны шаблону компонента:
@component("subscriptions")
Подключит шаблон с названием x-subscriptions.tpl в текущий шаблон. Обратите внимание что спец. шаблон компонента всегда должен начинаться с префикса x-
Layout
Layout - это основной шаблон с стилями и разметками который распространяется на все страницы.
Все шаблоны (кроме спец. шаблонов компонентов) должны начинаться с указания их layout'а:
@layout("app_mikbill")
Это указание на то, что страница использует layout c названием app_mikbill в котором построены все основные стили и разметка страницы. Данный шаблон будет подключен в этот layout.
В Layout шаблон подключается в блок slot с id=app:
<slot id="app"></slot>
Функции
Показать данные
Функция для показа данных (echo) заменена на открывающиеся {{ и закрывающиеся }}
{{ "Привет" }}
asset
Функция для подключения файлов стилей/картинок/js относительно текущей директории стиля (data/template/<название стиля>/):
{{ asset("css/bootstrap.min.css") }}
Перевод
Для перевода текста можно использовать trans() или же __():
{{ trans("Привет") }} {{ __("Привет") }}