Laravel – это популярный PHP-фреймворк, известный своим элегантным синтаксисом и мощными функциями. Одной из его выдающихся особенностей является механизм шаблонов Blade, который позволяет разработчикам писать чистый, читаемый и повторно используемый код. В этой статье мы углубимся в две основные директивы Blade, @yield и @extends, и исследуем, как они могут улучшить ваши приложения Laravel.
Понимание @yield:
Директива @yield используется для определения раздела контента, который может быть переопределен или заполнен дочерними представлениями. Он действует как заполнитель, куда можно вставлять динамический контент. Чтобы создать раздел доходности, вы можете использовать следующий синтаксис:
@yield('section_name')
Предположим, у нас есть основной файл макета под названием layout.blade.php. Внутри этого файла мы определяем раздел доходности под названием «контент», в котором будет размещено фактическое содержимое страницы:
<!-- layout.blade.php -->
<html>
<head>
<!-- Head section content -->
</head>
<body>
<div class="container">
@yield('content')
</div>
<!-- Footer section content -->
</body>
</html>
Расширение макета с помощью @extends:
Директива @extends позволяет наследовать структуру и функциональность родительского представления. Он устанавливает связь между дочерним представлением и основным макетом. Чтобы расширить макет, вам необходимо включить следующий код в начало дочернего представления:
@extends('layout')
Расширяя макет, вы наследуете все его определенные разделы, включая разделы доходности. Затем вы можете заполнить эти разделы уникальным контентом в дочернем представлении.
Заполнение разделов доходности.
Чтобы заполнить разделы доходности из дочернего представления, используйте директиву @section. Предположим, у нас есть дочернее представление под названием home.blade.php. Чтобы заполнить раздел «Содержимое» макета, мы можем сделать следующее:
@extends('layout')
@section('content')
<h1>Welcome to my Laravel Blade tutorial!</h1>
<p>This is the home page content.</p>
@endsection
В этом примере содержимое тегов @section('content')и @endsectionзаменит заполнитель @yield('content')в файле макета.
Вложенные макеты и несколько разделов доходности.
Blade также поддерживает вложенные макеты, в которых дочернее представление расширяет другое дочернее представление. Это позволяет создавать модульные и многократно используемые шаблоны. Кроме того, вы можете определить несколько разделов доходности в макете для динамической организации различных частей страницы.
Директивы @yield и @extends в шаблонизаторе Blade Laravel предоставляют мощные инструменты для создания гибких и удобных в обслуживании представлений. Используя эти директивы, вы можете легко составлять макеты, совместно использовать общий код и создавать модульные приложения. Понимание и освоение @yield и @extends, несомненно, повысит ваши навыки разработки на Laravel.