Laravel – платформа для построения веб-приложений на архитектуре MVC (Model-View-Controller, Модель-Вид-Контроллер, Модель-Представление-Контроллер). Одной из составляющих архитектуры MVC является View (он же Вид, он же Представление) отвечающий за визуализацию выходных данных, которые сформировали модель и контроллер.
В Laravel Views являются файлами PHP в сочетании с разметкой HTML. Для производительности и чистоты кода представлений разработчики Laravel предлагают эргономичный язык шаблонов Blade. Views можно также писать на чистом PHP без использования движка Blade и использовать представления, например, для взаимодействия кода PHP и JavaScript по технологии AJAX.
Создавать представления в Laravel можно вручную или использовать помощник для веб-разработчиков Laravel Artisan для быстрого создания аккуратного программного кода. Ниже приведены примеры создания и использования представлений Laravel.
Установка фреймворка Laravel описана на странице Создание и запуск проекта PHP Laravel. В подтверждение описанной теории к странице прикреплен исходник практического примера создания представлений (видов) для приложения Laravel.
Laravel использует шаблонизатор Blade, позволяющий элегантно встраивать PHP-код в HTML разметку. Blade – это мощный и простой движок, который позволяет создавать динамичные и красивые представления. Файлы Blade имеют двойное расширение: file_name.blade.php
указывающее на то, что этот файл должен обрабатываться движком Blade и интерпретатором PHP. В таких представлениях можно свободно комбинировать директивы Blade, HTML, CSS и JavaScript код, а также использовать «сырой» PHP-код.
Не следует опасаться снижения скорости создания веб-страниц вследствие дополнительной работы движка Blade: такие представления компилируются в чистый код PHP и кэшируются до тех пор, пока не будут изменены. При веб-запросах фреймворк работает с готовыми кэшированными представлениями. Таким образом работа движка Blade практически не оказывает влияние на производительность фреймворка Laravel. Кэши представлений хранятся в папке storage\framework\views.
По умолчанию операторы Blade{{ }} автоматически преобразуют символы в объекты HTML через функцию PHP htmlspecialchars() для предотвращения XSS-атак. В скомпилированном файле htmlspecialchars(…) заменяется оболочкой e(…).
Готовое представление шаблона Blade после компиляции:
Основные операторы и директивы Blade: {{ … }} - оператор Blade вывода текста, заменяющий конструкцию из функций PHP htmlspecialchars() и echo()для уменьшения количества кода и предотвращения XSS-атак. {!! … !!} - оператор для вывода неэкранированного (сырого) текста. @include - позволяет включать одно представление в другое. Используется для уменьшения дублирования кода. @extends - наследование шаблона макета. @yield - используется для отображения контента. @section - определяет раздел контента. Отличается от предыдущей директивы более широкими возможностями. @parent - вывод контента родительской @section на дочерней странице.
Кроме вышеперечисленных движок Blade включает множество других операторов и директив, например: условные, операторов цикла, комментарии и другие.
Представления фреймворка Laravel хранятся в каталоге resources/views. Чтобы создать представление вручную достаточно в каталоге хранения создать файл с требуемым именем и двойным расширением file_name.blade.php. В таком случае представление будет обрабатываться движком Blade.
В представлении шаблона Blade нет необходимости в тегах кода PHP <?php ?>, достаточно только HTML и конструкций Blade. Здесь можно повториться: движок Blade не ограничивает использование простого кода PHP в своих шаблонах, в таком случае теги <?php ?> необходимы.
Гибкость Laravel позволяет создавать представления как обычные файлы PHP, с расширением .php . Такие представления подойдут для специфических задач, например для упрощенных веб-страниц без использования контроллеров. Но для представлений с мастер-страницами и подпредставлениями код может оказаться громоздким и сложным для чтения.
Artisan – помощник для веб-разработчиков в виде интерфейса командной строки включенный в состав Laravel. Artisan включает множество полезных команд и повышает комфортность веб-разработки.
Для создания представления с помощью Artisan необходимо запустить окно командной строки в корне фреймворка и выполнить команду: php artisan make:view file_name - расширение файла указывать не следует, оно добавится автоматически. В результате данной команды создастся представление Blade по пути resources/views. Для создания представлений в подкаталогах достаточно указывать имя подкаталогов через точку: php artisan make:view pages.games.file_name - представление создастся по пути resources/views/pages/games, причем если указанных каталогов не существует они создадутся автоматически.
Представление созданное посредством Artisan:
<div>
<!-- I begin to speak only when I am certain what I will say is not better left unsaid. - Cato the Younger -->
</div>
В качестве примера создадим конструкцию из представлений с наследованием шаблонов: главный макет по пути resources\views\shared\layout.blade.php,
меню - resources\views\shared\nav.blade.php,
подвал - resources\views\shared\footer.blade.php,
страница - resources\views\pages\index.blade.php,
страница - resources\views\pages\php-lang.blade.php,
страница - resources\views\pages\laravel.blade.php.
Вы можете создать файлы этих представлений любым описанным выше способом и скопировать в них соответствующие коды. Представления-страницы расширяют главный макет имея в начале файла директиву @extends.
Главный макет — это представление с включением подпредставлений навигации и подвала и секциями для вывода содержания дочерних страниц. Для привлекательности веб-страниц используется CSS-фреймворк Bootstrap. Код и разметка главного макета:
Представление меню включается в состав главного макета директивой Blade @include(). В качестве меню используется компонент Bootstrap Navbar. В коде представления можно заметить функции route(…) — это вызовы именованных маршрутов, о чем написано ниже. Код и разметка меню:
Представление подвала простейшее, состоит из одной надписи. Как и меню подвал включается в главный макет директивой шаблонизатора Blade @include(). Код подвала:
Теперь необходимо определить маршруты с URL-адресами, по которым будут вызываться созданные выше представления. Маршруты для веб-страниц определяются в файле routes/web.php.
В Laravel для определения маршрутов используются статические функции класса Route. Каждый маршрут связан с конкретным URL-адресом и возвращает соответствующее представление, например для домашней страницы сайта:
Route::get('/', function () {
return view('pages.index', ['title' => 'Hello from Laravel', 'page_name'=> 'Framework Laravel']);
})->name('url_index');
// Или то же самое упрощенно:
Route::view("/","pages.index", ['title' => 'Hello from Laravel', 'page_name'=> 'Framework Laravel'])->name("url_index");
Возвращая вид можно сразу определить массив переменных для передачи их в представление. Функция name() именует маршрут для вызова маршрута по имени в представлениях. Именование маршрутов упрощает их редактирование: в таком случае изменение URL маршрута в файле routes/web.php избавит вас от необходимости редактировать URL в каждом представлении.
Полный файл маршрутов веб-страниц исходника сайта на Laravel:
Вышеописанного достаточно для построения простейшего сайта на Laravel. На случай затруднений к странице прикрепляется рабочий исходник для тестирования представлений. Исходник написан в среде Visual Studio Code.
Для разработок на PHP Laravel рекомендуется установить следующие расширения: Bootstrap IntelliSense, IntelliPHP - AI Autocomplete for PHP, Laravel Blade formatter, Laravel Blade Snippets, Laravel Extra Intellisense, PHP Tools for Visual Studio Code. Расширения можно скачать и установить на Extensions for Visual Studio Code
Скачать исходник
Тема: «PHP Laravel Views - создание представлений»
LaravelViews-vscode.zip
Размер:25336 КбайтЗагрузки:41