шаблонизатор blade

шаблони Blade

Blade - простий, але потужний шаблонизатор, що входить до складу Laravel. На відміну від інших шаблонизатор, він не обмежує вас у використанні конструкцій PHP всередині шаблонів. Шаблони Blade компілюються в PHP-код і кешуються фреймворком - Blade не вносить додаткових гальм в роботу фреймворка.

Файли шаблони Blade закінчуються на .blade.php і зазвичай знаходяться в папці resources / views.

спадкування шаблонів

визначення лейаута

Two of the primary benefits of using Blade are template inheritance and sections. To get started, let's take a look at a simple example. First, we will examine a "master" page layout. Since most web applications maintain the same general layout across various pages, it's convenient to define this layout as a single Blade view:

Два основних переваги Blade - це спадкоємство шаблонів і секції. Щоб було зрозуміліше, давайте розглянемо простий приклад. Зазвичай, все веб-додатки мають базовий шаблон - він же лейаут, макет. У ньому відбувається підключення css і js, задається базова верстка і в певних місцях підключаються такі частини як хедер (шапка), футер, сайдбар і т.п. Ось він у вигляді шаблону Blade:

Як ви можете бачити, це звичайний HTML з директивами, розставленими в певних місцях. Директива @section визначає деяку секцію контенту. Директива @yield використовується для відображення в заданому місці контенту секції з заданим ім'ям.

Добре, лейаут у нас є, давайте тепер подивимося, що повинна являти собою дочірня сторінка.

розширення лейаута

У контролерах або Рауса ми викликаємо саме дочірні сторінки (вьюха), а вони вже збирають "від низу до верху" (від себе до лейауту) HTML сторінки.

Щоб показати, який саме з лейаутов (їх у нас в додатку може бути кілька) ми будемо використовувати, ми повинні використовувати директиву @extends:

У дочірній сторінці ми задаємо секції, які будемо використовувати в лейауте. Зверніть увагу, що секція sidebar використовує директиву @. що дозволяє не перезаписати секцію sidebar. певну в лейауте, а додати контент до неї.

І, як було зазначено вище, ми звертаємося до дочірньої сторінці за допомогою стандартного хелпера view ():

відображення даних

Для виведення змінної в шаблоні Blade потрібно обернути її в конструкцію>:

Передача змінної в шаблон:

Усередині фігурних дужок ви можете використовувати будь-яку PHP-конструкцію, в тому числі і виклик функції:

Примітка: Конструкція> автоматично застосовує до висновку PHP-функцію htmlentities для запобігання XSS-атак.

Висновок даних з перевіркою на їх існування

Іноді вам потрібно вивести змінну, яка, можливо, не визначена в шаблоні. Щоб не отримати ексепшн "Змінна не визначена", зазвичай ви робите наступне:

Але замість тернарного оператора ви можете писати так:

Якщо змінна $ name не визначена, буде виведений рядок Default.

Висновок неекранованого контенту

За замовчуванням конструкція> прменяются до вмісту PHP-функцію htmlentities. замінюючи виконувані html-теги типу