Co nowego w kolejnej wersji frameworka – Laravel 9
Laravel w wersji oznaczonej numerkiem 9 będzie kolejną wersją LTS i jego planowana data wydania jest deklarowana na rok początek roku 2022. W tym wpisie chcielibyśmy przedstawić ogłoszone zmiany oraz funkcję jakie pojawią się w tej wersji tego zyskującego coraz bardziej na popularności frameworka
Planowana zmiana w dacie premiery wersji 9
Początkowe informacje jakie pojawiły się w internecie informowały o dacie premiery przypadającej na miesiąc wrzesień tego roku, ale zespół odpowiedzialny za rozwijanie Laravela postanowił przesunąć datę tego wydania na okres do stycznia 2022:
Laravel używa różnych pakietów, które oparte są na społeczności, a także dziewięciu komponentów Symfony dla wielu realizowanych funkcji w ramach frameworka. Symfony w wersji 6.0 ukaże się w listopadzie 2021. Z tego powodu zdecydowaliśmy się opóźnić planowaną datę premiery wersji 9.0 do stycznia 2022 roku. Opóźniając wydanie, możemy zaktualizować nasze podstawowe komponenty Symfony do Symfony 6.0 bez konieczności czekania do września 2022 z wykonaniem tej aktualizacji. Ponadto, to lepiej przygotowuje Nas do przyszłych wydań, ponieważ nasze roczne wydania będą zawsze mieć miejsce dwa miesiące po wydaniach Symfony.
Plan wydawniczy zadeklarowany w ten sposób przesunie również przyszłe główne wydania i prezentuje się w następujący sposób:
- Laravel 9: Styczeń 2022
- Larvel 10: Styczeń 2023
- Laravel 11: Styczeń 2024
PHP w wersji 8 jako minimalna wersja do obsługi Laravel 9
Minimalna wersja do obsługi nowego wydania jest uwarunkowana wydaniem Symfony w wersji 6.0. Ta do obsługi będzie wymagała właśnie PHP w wersji 8.0 przez co nowe wydanie Laravela będzie posiadało identyczne ograniczenie.
Anonimowe migracje
Na początku roku 2021 Laravel z numerkiem 8.37 został wprowadzony z nową funkcją o nazwie Anonimowych migracji, która była odpowiedzialna za zapobieganiu kolizjom w nazwach klas tworzonych migracji.
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
Schema::table('people', function (Blueprint $table) {
$table->string('first_name')->nullable();
});
}
};
Po uruchomieniu Laravel 9 będzie to domyślne ustawienie po uruchomieniu polecenia php artisan make:migration
Nowy interfejs dla Query Builder’a
Dzięki uprzejmości Chris’a Morrell’a, Laravel w wersji 9.0 będzie wyposażony w nowy interfejs konstruktora zapytań, a wszystkie szczegóły związane z jego nowościami oraz użytkowaniem można podejrzeć tutaj: https://github.com/laravel/framework/pull/37956
Dla programistów, którzy polegają na wskazówkach dotyczących typów do analizy statycznej, refaktoryzacji lub uzupełniania kodu w swoim środowisku IDE, brak wspólnego interfejsu lub dziedziczenia między Query\Builder, Eloquent\Builder i Eloquent\Relation może być dość problematyczny:
return Model::query()
->whereNotExists(function($query) {
// $query is a Query\Builder
})
->whereHas('relation', function($query) {
// $query is an Eloquent\Builder
})
->with('relation', function($query) {
// $query is an Eloquent\Relation
});
Ta funkcja dodaje nowy interfejs Illuminate\Contracts\Database\QueryBuilder i cechę Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder, która implementuje interfejs zamiast istniejącej implementacji __call.
Damskie, a może i nie… Stringi 😉 w PHP 8
Ponieważ minimalną wersją do działania będzie PHP w wersji 8.0 funkcje takie jak:
- str_contains()
- str_starts_with()
- str_ends_with()
zostaną wprowadzone do wewnętrznej klasy Laravela \Illuminate\Support\Str
Od SfitMailer do Symfony Mailer
Już przestarzały i nie wspierany w Symfony i Laravel 9.0 SfiftMailer, który do tej pory był używany do obsługi poczty zostanie zastąpiony przez Symfony Mailer. O wszystkich kluczowych zmiana możemy przeczytać tutaj: https://github.com/laravel/framework/pull/38481. W momencie oficjalnej premiery Laravel 9 będziemy mieli dostęp do przewodnika aktualizacji.
Dużo więcej zmian…
Do premiery nowej wersji zostało jeszcze kilka miesięcy. Do tego czasu na pewno pojawi się dużo więcej informacji na temat nowego wydania. Będziemy starali się informować Was na bieżąco jeśli tylko pojawią się jakieś przecieki.
Dodaj komentarz