PHP 3695 ~ 2 мин.

Релиз Laravel 6.0

Релиз Laravel 6.0

Laravel 6.0 станет версией LTS (Long Term Support) — с поддержкой в течении длительного времени, вплоть до сентября 2022 года

Как и было объявлено на Laracon в июле, версия Laravel 6.0 вышла в августе, и привнесла небольшие изменения по сравнению с предыдущим 5.* релизом.

Как и версия 5.5, шестая "Лара" будет LTS - что означает поддержку в ближайшие 2 года, а один год с исправлениями, связанных с безопасностью фреймворка. Не LTS версии поддерживались течении полугода. Можно сравнить по таблице:


Версия
Релиз
Исправление ошибок
Исправления безопасности
5,5 (LTS)
30 августа 2017г.
30 августа 2019г.
30 августа 2020г.
5,6
7 февраля 2018г
7 августа 2018г.
7 февраля 2019г.
5,7
4 сентября 2018г.
4 марта 2019г.
4 сентября 2019г.
5,8
26 февраля 2019г.
26 августа 2019г.
26 февраля 2020г.
6,0 (LTS)
3 сентября 2019г.
3 сентября 2021г.
3 сентября 2022г.

Laravel 6.0

Laravel 6.0 (LTS) продолжает улучшения, сделанные в Laravel 5.8, представляя семантическое управление версиями, совместимость с Laravel Vapor , улучшенные ответы авторизации, middlewares задач, ленивые коллекции, улучшения подзапросов, извлечение фронтенда в отдельный в пакет laravel/ui и много других различных исправлений ошибок и улучшений.

Полный список изменений выглядит следующим:


  • Семантическое управление версиями
  • Совместимость с Laravel Vapor
  • Улучшенные ответы авторизации
  • Работа middleware в задачах
  • Ленивые Коллекции
  • Подзапросы в Eloquent
  • Laravel UI

Семантическая версионность

Пакет Laravel framework (laravel/framework) теперь соответствует стандарту семантического управления версиями. Это делает платформу совместимой с другими пакетами Laravel, которые уже следовали этому стандарту версий. Цикл выпуска Laravel останется неизменным.

Улучшенные ответы авторизации

Раньше было сложно предоставлять пользовательские сообщения об ошибках при авторизации конечным пользователям. В Laravel 6 представлен метод Gate::inspect, который обеспечивает ответ политики авторизации:

$response = Gate::inspect('view', $flight);

if ($response->allowed()) {
    // User is authorized to view the flight...
}

if ($response->denied()) {
    echo $response->message();
}


Job Middleware

Job Middleware - это функцирнальность, предоставленная Тейлором Отвеллом, которая позволяет выполнять задания через промежуточное ПО:

// Add a middleware method to a job class
public function middleware()
{
     return [new SomeMiddleware];
}

// Specify middleware when dispatching a job
SomeJob::dispatch()->through([new SomeMiddleware]);

Middleware поможет вам избежать пользовательской логики в теле метода handle() вашей Job.

Ленивые Коллекции

Ленивые коллекции вносят новые правила работы с обширными коллекциями данных, включая коллекции моделей Eloquent. Новый класс Illuminate\Support\LazyCollection использует генераторы PHP для поддержания низкого потребления памяти при работе с большими наборами данных.

Расширение Eloquent подзапросами

Один из отличных способов перенести большой объем данных в базу данных - использование подзапросов. Подзапросы позволяют запускать вложенные запросы в другом запросе к базе данных. Это может быть мощным способом извлечения данных вспомогательной модели без каких-либо дополнительных запросов к базе данных, когда это невозможно сделать через отношения. Вы также можете использовать подзапросы в операторах order by, where и других:

//“Select” subqueries
return Destination::addSelect(['last_flight' => Flight::select('name')
    ->whereColumn('destination_id', 'destinations.id')
    ->orderBy('arrived_at', 'desc')
    ->limit(1)
])->get();

//“Order by” subqueries
return Destination::orderByDesc(
    Flight::select('arrived_at')
        ->whereColumn('destination_id', 'destinations.id')
        ->orderBy('arrived_at', 'desc')
        ->limit(1)
)->get();

//“From” subqueries
return DB::table(function ($query) {
    $query->selectRaw('sum(amount) as total')
        ->from('donations')
        ->groupBy('user_id');
}, 'do


Laravel UI

Фронтенд поставляемый с выпусками Laravel 5.x, теперь вынесен в отдельный composer пакет  laravel/ui . Если вам нужна традиционная Bootstrap/Vue, необходимо запустить следующую команду:

composer require laravel/ui
php artisan ui vue --auth

 более подробно можно почитать в документации к релизу https://laravel.com/docs/6.0/releases

Что думаешь?

Категории
  • PHP 67
  • Заметки 18
  • Безопасность 4
  • Флуд 2
  • Nginx 2
  • ИТ новости 2
  • Видео 1
  • Docker 1
  • Roadmap 1
  • Архитектура 0

Хочешь поддержать сайт?

Делаем из мухи слона

sergeymukhin.com

персональный блог о веб-разработке от Сергея Мухина. Блог был основан в 2018 году, и собирался уделять основное внимание последним тенденциям, учебным пособиям, а также советам и рекомендациям, позволяющим начинающим девелоперам встать быстрее на правильную дорогу веб разработки, но что-то пошло не так 😃

Релизы PHP 8.4

Дата Релиз
4 Июля 2024 Альфа 1
18 Июля 2024 Альфа 2
1 Августа 2024 Альфа 3
13 Августа 2024 Feature freeze
15 Августа 2024 Бета 1
29 Августа 2024 Бета 2
12 Сентября 2024 Бета 3
26 Сентября 2024 RC 1
10 Октября 2024 RC 2
24 Октября 2024 RC 3
7 Ноября 2024 RC 4
21 Ноября 2024 GA

Что нового?