Laravel 7. Які нові функції фреймворку ми використовуємо для розробки?
6 Жовтня 2020
Фреймворк для веб-розробки Laravel має досить широке поширення у сфері IT. Популярність даного веб-фреймворку частково зумовлена його адаптивністю під конкретні потреби користувача, а також простотою внесення змін до готового проєкту, створеного на його основі. З 3 березня 2020 року ця платформа отримала оновлення до 7 версії.
Одним з важливих змін нової версії є впровадження системи Laravel Sanctum, яка тепер використовує простішу та гнучкішу систему ідентифікації користувача у веб-додатках та на веб-сайтах, що мають односторінкову основу, а також мобільних додатках та простих програмних інтерфейсах орієнтованих на використання пристроїв авторизації (токенів).
Laravel Sanctum можна встановити за допомогою “Composer”:
Після цього, файли міграції та конфігурації Sanctum необхідно опублікувати за допомогою Artisan - команди:
Якщо Sanctum буде використовуватися для аутентифікації в односторінковому додатку, до відповідної групи проміжного програмного забезпечення необхідно додати проміжне програмне забезпечення Sanctum, як показано нижче:
Користувач отримав можливість створення кількох токенів, які можна гнучко налаштовувати для отримання обмежених дозволів на доступ і виконання певного обмеженого обсягу функцій. Крім того, створення токенів у новій системі стало менш скрутним завданням, оскільки більше нема потреби у створенні відкритого протоколу авторизації (OAuth).
Для початку випуску токенів, у моделі користувача має використовуватися характеристика HasApiTokens:
Токен можна створити методом createToken:
Також варто відзначити такі переваги нової системи авторизації як покращення безпеки щодо міжсайтових підробок запиту (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 активно застосовує цей фреймворк у процесі розробки, що дозволяє досягати найкращих результатів, що задовольняють навіть найвибагливіші запити клієнтів.
Сподобалася стаття ? - Поділіться посиланням ::