Laravel 7. Какие новые функции фреймворка мы используем при разработке?

6 Октября 2020

Фреймворк для веб-разработки Laravel имеет достаточно широкое распространение в сфере IT. Популярность данного веб-фреймворка частично обусловлена его адаптивностью под конкретные нужды пользователя, а также простотой внесения различных изменений в готовый проект, созданный на его основе. С 3 марта 2020 года эта платформа получила обновление до 7 версии.

Одним из  важных  изменений новой версии является внедрение системы Laravel Sanctum, которая теперь использует более простую и гибкую систему идентификации пользователя в веб-приложениях и на веб-сайтах, имеющих одностраничную основу, а также мобильных приложениях и простых программных интерфейсах ориентированных на использование устройств авторизации (токенов).

 

Laravel Sanctum можно установить с помощью “Composer”:

laravel sanctum

 

После этого, файлы миграции и конфигурации Sanctum необходимо опубликовать с помощью Artisan - команды:

artisan

 

Если Sanctum будет использоваться для аутентификации в одностраничном приложении, в соответствующую группу промежуточного программного обеспечения необходимо добавить промежуточное ПО Sanctum, как показано ниже:

laravel

 

Пользователь получил возможность создания нескольких токенов которые возможно гибко настраивать для получения ограниченных разрешений на доступ и выполнение определенного ограниченного объема функций. Кроме того, создание токенов в новой системе стало менее затруднительной задачей, поскольку больше нет необходимости в создании открытого протокола авторизации (OAuth).

 

Для начала выпуска токенов, в модели пользователя должна использоваться черта HasApiTokens:

tokens

 

Токен можно создать методом createToken:

token

 

Также стоит отметить такие преимущества новой системы авторизации как улучшения безопасности в отношении межсайтовых подделок запроса (CSRF), межсайтового скриптинга (XSS) и аутентификации сеанса.

Другие важные изменения в Laravel 7.0 коснулись компонентов Blade. Например, была добавлена функция визуализации (рендера) использующая метки (теги). Также были улучшены возможности настройки атрибутов, регулировки классов компонентов и предустановленных компонентов. Компоненту присваивается класс который определяет получаемые им данные, а шаблон компонента теперь имеет автоматический доступ ко всем отображаемым методам и свойствам, указываемым соответствующим классом компонента. Предусмотрено автоматическое изменение дополнительных свойств (атрибутов) HTML с помощью переменной ($attribute), которая включена в комплект атрибутов. При этом в новой версии фреймворка сохранены все предыдущие версии синтаксиса компонентов Blade.

 

Например, если компонент AppViewComponentsAlert определен, как:

 

Шаблон компонента Blade представлен, как:

В этом случае компонент можно отобразить с помощью тега:

Улучшением седьмой версии Laravel также стало обновление HTTP клиента Guzzle, который получил более простой и лаконичный программный интерфейс, что дает возможность быстрого создания связи с веб приложениями посредством запросов HTTP. Более того, при разработке клиента Guzzle для Laravel, учитывались наиболее вероятные ситуации применения данного инструмента, а также опыт его использования разработчиками. В частности, указанный клиент способен быстро создавать запрос POST для взаимодействия с данными JSON.

В добавлении к вышесказанному, обновленный клиент включает в себя удобные и полезные инструменты тестирования:

Обновление предоставило возможность быстрых действий со строками, что было реализовано благодаря введению новой библиотеке действий со строками, имеющей большую объектную направленность,  для ранее представленных в Laravel-классе (IlluminateSupportStr) инструментов управления строками. Посредством метода Str::of можно создать свободный объект IlluminateSupportStringable, после чего добавить методы управления строкой:

 

Laravel 7.0 предусматривает возможность создания нескольких почтовых драйверов в одном приложении. При этом каждый почтовый драйвер можно индивидуально настроить с помощью файла конфигурации, а также имеется возможность использовать несколько почтовых сервисов в рамках одного приложения.

Настройки почтового драйвера осуществляется методом mailer, который позволяет отправить сообщение с учетом установленных параметров:

Изменения новой версии также затронули стандартный почтовый шаблон Markdown, дизайн которого был переработан с применением цветовой палитры Tailwind CSS. Однако, шаблон возможно настроить иным образом для конкретных задач.

По сравнению с предыдущими релизами, Laravel 7.0 получил более надежную очередь базы данных MySQL 8+ благодаря чему, драйвер базы данных может использоваться в соответствующих приложениях с крупными объемами производства, не опасаясь проблем безопасности.

Также, благодаря использованию нового подхода к сопоставлению кэшированных маршрутов, в новой версии Laravel удалось добиться двукратного ускорения обработки запросов в приложениях. В особенности данное улучшение заметно в крупных приложениях с количеством маршрутов свыше 800.

В фреймворке Laravel 7.0 по умолчанию добавлена поддержка технологии совместного использования ресурсов между разными источниками (CORS).

Ряд нововведений релиза 7.0 коснулись инструмента для тестирования Artisan. Теперь можно использовать удобную консоль с подробной информацией касательно касательно проводимых тестов.

Также, была добавлена новая консольная команда для Artisan stub:publish, которая позволяет создавать и конфигурировать так называемые файлы “заглушки”, необходимые для создания таких классов, как тесты, контроллеры, миграции или задачи.

В процессе разработки может возникнуть потребность повторять действие, хотя действие должно завершиться ошибкой при достижении определенного количества исключений (maxExeptions).В Laravel 7.0 есть возможность указать параметр максимально допустимых исключений.

Например, если приложение не может получить блокировку Redis, действие выполняется в течении 10 секунд 25 раз. Однако, если действие вызовет три необработанных исключения - оно завершиться ошибкой.

Подводя итоги, Laravel 7.0 зарекомендовал себя как надежное и гибкое средство веб-разработки, имеющее множество полезных функций упрощающих процесс создания проектов и избавляющих от ряда ограничений предыдущих релизов.

Компания VIS-A-VIS активно применяет данный фреймворк в процессе разработки, что позволяет достигать наилучших результатов, удовлетворяющих даже самые требовательные запросы клиентов.

Понравилась статья? – Поделитесь ссылкой::