Найти тему
Кодовые решения

"Laravel 11: нововведения и улучшения для современной Веб-разработки"

Оглавление

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

Семантическое версионирование и политика поддержки

Laravel, как всегда, придерживается семантического версионирования. Основные релизы выходят ежегодно в первом квартале. Важно отметить, что обновления минорных и патч-релизов совместимы и не вносят критических изменений, поэтому вы можете безопасно использовать ограничения версии вроде ^11.0. Для исправлений ошибок предоставляется поддержка в течение 18 месяцев, а для исправлений безопасности — 2 года.

Версия 11 требует PHP 8.2 и поддерживает новейшие версии. Это позволяет максимально эффективно использовать современные возможности языка и гарантирует производительность.

Упрощенная структура приложения

Laravel 11 делает шаг в сторону упрощения структуры новых приложений. Все настройки теперь сосредоточены в файле bootstrap/app.php. Здесь можно определить маршруты, промежуточное ПО, обработку исключений и провайдеры служб.

  • Провайдеры служб: Вместо нескольких классов теперь используется один AppServiceProvider, где можно регистрировать события, привязки моделей и ворота авторизации.
  • Маршрутизация API и Broadcasting: Файлы api.php и channels.php по умолчанию отсутствуют, но их можно легко добавить с помощью команд php artisan install:api и php artisan install:broadcasting.

Новый подход к промежуточному ПО и обработке исключений

Промежуточное ПО теперь стало встроенной частью фреймворка, что значительно упрощает его настройку. Аналогично, обработка исключений теперь задается в bootstrap/app.php. Это позволяет уменьшить количество файлов, включенных в проект, и упростить управление.

Laravel Reverb — масштабируемые WebSocket

Одно из ключевых нововведений — Laravel Reverb, сервер WebSocket, который интегрируется с Laravel Echo для реального времени. Reverb поддерживает горизонтальное масштабирование через Redis и обеспечивает простую настройку:

-2

Ограничение скорости на уровне секунд

Теперь можно задавать ограничения скорости на уровне секунд, что полезно для более точного контроля запросов:

-3

Маршрут для проверки здоровья

Для проверки работоспособности приложения внедрен простой маршрут /up, который можно использовать с инструментами мониторинга.

Плавная ротация ключей шифрования

Laravel 11 поддерживает использование нескольких ключей шифрования, что позволяет плавно обновлять ключи без необходимости разлогинивать всех пользователей.

Новшества для разработчиков

  • Автоматическое рехэширование паролей: При изменении сложности хэша пароли пользователей автоматически обновляются при их следующей аутентификации.
  • Интеграция с Prompt: Теперь в консольных приложениях можно использовать Laravel Validator для проверки ввода.
  • Тестирование очередей: Новый метод withFakeQueueInteractions упрощает тестирование заданий в очереди.

Новые команды Artisan

Добавлены команды для создания классов, интерфейсов, перечислений и трейтов:

-4

Производительность и поддержка баз данных

  • SQLite в памяти: Тесты стали выполняться быстрее благодаря поддержке повторного использования PDO.
  • MariaDB: Впервые появился отдельный драйвер для этой СУБД.
  • Инспекция схем: Теперь доступны методы для управления таблицами, колонками и индексами.

Другие полезные улучшения

  • Функция once: Позволяет кэшировать результаты замыканий на уровне запроса.
  • Кастомизация типов данных в моделях: Теперь можно задавать касты через методы, что дает больше гибкости.

Laravel 11 — это шаг вперед в упрощении и улучшении разработки, сохраняя традиционное удобство фреймворка. Я уверен, что эти изменения позволят вам создавать масштабируемые и современные приложения с еще большим комфортом.