Ретроспектива Laravel: что изменилось с версии 5.8

Источник: «Laravel retrospective: what changed since version 5.8?»
Погрузитесь в историю Laravel. Если вы отдалились от Laravel, это подходящее место, чтобы возобновить своё путешествие.

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

Что же, это ваш счастливый день. Вместо того чтобы часами читать каждое куроводство по обновлению, я воспользовался мощью AI для составления (не исчерпывающего) списка, который даст отличный обзор.

Изменения структуры каталогов Laravel

Перемещённые каталоги

  1. В Laravel 9 каталог resource/lang был перемещён в корневой каталог проекта.

Новые каталоги

  1. Фабрики/Factories: в Laravel 8 фабрики были переписаны для поддержки классов и хранятся в каталоге database/factories.
  2. Наполнители/Seeders: с Laravel 8 классы наполнителей/seeder хранятся в каталоге database/seeders.

Удалённый или изменённый функционал

  1. Скаффолдинг аутентификации перемещён в репозиторий laravel/ui.
  2. Хелперы str_ и array_ были удалены из фреймворка в Laravel 6.0 и перемещены в пакет laravel/helpers.
  3. Фасад Input был удалён в Laravel 6.0, и разработчики рекомендуют использовать вместо него фасад Request.
  4. Почтовые драйвера mandrill и sparkpost были удалены в Laravel 6.0.
  5. Драйвер хранилища rackspace был удалён в Laravel 6.0.
  6. Недокументированные методы addHidden и addVisible были удалены из Eloquent в Laravel 7.0.
  7. Недокументированный почтовый компонент Markdown promotional был удалён в Laravel 7.0.
  8. Поддержка дубликатов имён маршрутов была удалена в Laravel 7.0.
  9. Функция Фабрик types была удалена из Eloquent в Laravel 7.0.
  10. Метод и свойство retryAfter были переименованы в backoff в Laravel 8.0.
  11. Свойство timeoutAt было переименовано в retryUntil в Laravel 8.0.
  12. Методы allOnQueue() и allOnConnection() были удалены при использовании цепочки заданий в Laravel 8.0.
  13. Почтовые шаблоны Markdown по умолчанию были изменены в Laravel 7.0 и Laravel 8.0, а старые шаблоны были удалены.
  14. Правило валидации password было переименовано в current_password в Laravel 9.0.
  15. Свойство Eloquent модели $dates объявлено устаревшим в Laravel 10.0, и разработчиками рекомендуется использовать свойство $casts.
  16. Метод Redirect:home объявлен устаревшим в Laravel 10.0, разработчиками рекомендуется вместо него использовать Redirect::route('home').
  17. Устаревшие методы Bus::dispatchNow и dispatch_now, в Laravel 10.0, были заменены методами Bus::dispatchSync и dispatch_sync соответственно.
  18. Устаревший трейт MocksApplicationServices был удалён из тестов в laravel 10.0.

Более подробно об изменениях для каждой основной версии с laravel 5.8

Изменения в Laravel 6.0 по сравнению с 5.8

Изменения в Laravel 7.0 по сравнению с 6.x

Изменения в Laravel 8.0 по сравнению с 7.x

Изменения в Laravel 9.0 по сравнению с 8.x

Изменения в laravel 10.0 по сравнению с 9.x

Официальные пакеты добавленные с Laravel 5.8

В Laravel были добавлены следующие пакеты:

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

Laravel Cashier Stripe (Paddle) предоставляет выразительный и удобный интерфейс биллинговых услуг подписки Stripe. Он обрабатывает почти весь шаблонный код биллинга подписки, который вы боитесь писать. В дополнение к базовому управлению подпиской Cashier может управлять купонами, заменой подписки, количеством подписки, льготным периодом отмены и даже создавать файлы PDF-счетов.

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

Laravel Homestead — это официальный, предварительно упакованный Vagrant box, предоставляющий прекрасную среду разработки, не требующую установки PHP, веб-сервера и любого другого серверного программного обеспечения на локальном компьютере.

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

Laravel Mix, пакет разработанный создателем Laracasts Джеффри Уэем, предоставляет гибкий API для определения шагов сборки webpack для вашего приложения Laravel с использованием нескольких распространённых препроцессоров CSS и JavaScript.

Laravel Octane повышает производительности приложения, обслуживая ваше приложение с помощью мощных серверов, включая Open Swoole, Swoole, и RoadRunner. Octane загружает ваше приложение один раз, сохраняет его в памяти, а затем отправляет ему запросы со сверхзвуковой скоростью.

Laravel Pennant — это простой и лёгкий пакет feature флагов — без хлама. Feature флаги позволяют уверенно развёртывать новые возможности приложения, проводить A/B-тестирование новых дизайнов интерфейсов, дополнять trunk-based стратегию разработки и многое другое.

Laravel Pint — исправление стиля PHP-кода для минималистов. Pint построен на основе PHP-CS-Fixer и упрощает обеспечение того, чтобы ваш код всегда оставался чистым и согласованным.

Laravel Sail — это лёгкий интерфейс командной строки для взаимодействия со средой разработки Laravel Docker по умолчанию. Sail обеспечивает отличную отправную точку для создания приложения Laravel с использованием PHP, MySQL и Redis, не требуя предварительного опыта работы с Docker.

Laravel Sanctum предоставляет лёгкую систему аутентификации для SPA, мобильных приложений и простых API на основе токенов. Sanctum позволяет каждому пользователю вашего приложения создавать несколько API токенов для своей учётной записи. Этим токенам могут быть представлены способности/области видимости, которые определяют, какие действия разрешено выполнять токенам.

Laravel Valet — среда разработки для macOS минималистов. Laravel Valet настраивает ваш Mac так, чтобы Nginx всегда запускался в фоновом режиме при запуске компьютера. Затем, используя DnsMasq, Valet проксирует все запросы в домене *.test, чтобы они указывали на сайты, установленные на вашем локальном компьютере.

Дополнительные материалы

Предыдущая Статья

Выпущен первый Alpha релиз PHP 8.3

Следующая Статья

Как исправить: Using $this when not in object context