Laravel 11 nie zostanie wydany do końca roku, ale udostępniono kilka nowych funkcji, a Taylor przechodzi kilka dużych nowych ulepszeń w swoim przemówieniu Laracon:
Usprawniona struktura
katalogów Do tej pory są to tylko podgląd wersji beta. Mogą się zmienić, ale na razie oto, czego się spodziewać...
Kontrolery domyślnie niczego już nie rozszerzają.
Koniec z katalogiem oprogramowania pośredniczącego. Obecnie Laravel zawiera dziewięć oprogramowania pośredniczącego i wiele z nich, których nigdy byś nie dostosował. Jeśli jednak chcesz je dostosować, zostanie to przeniesione do aplikacji/usługodawcy. Na przykład:
public function boot(): void
{
EncryptCookies::except(['some_cookie']);
}
Nigdy więcej Http/Kernel
Większość rzeczy, które kiedyś mogłeś zrobić w jądrze, możesz teraz zrobić w Bootstrapie/aplikacji.
return Application::configure()
->withProviders ()
-›withRouting(
web: __DIR__.'/../routes/web.php'
commands: __DIR__.'/../routes/console.php',
)
->withMiddleware(function(Middleware Smiddleware) {
$middleware->web(append: LaraconMiddleware::class):
})
Zmiany
rzutowań modelu Rzutowania modelu są teraz definiowane jako metoda, a nie właściwość. Kiedy definiujemy się jako metodę, możemy robić inne rzeczy, na przykład wywoływać inne metody bezpośrednio z rzutów. Oto przykład użycia nowego Laravel 11 :
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'options'=› AsEnumCollection::of(UserOption::class),
];
}
Config Changes
Laravel ma wiele plików konfiguracyjnych, a Laravel 11 AsEnumCollection
usuwa je, a wszystkie opcje konfiguracji spadają kaskadowo. Został rozszerzony .env
o wszystkie opcje, które chcesz ustawić.
Aby sparować z tym jest nowe config:publish
polecenie, dzięki czemu możesz przywrócić dowolną konfigurację, którą chcesz. Nawet po przywróceniu ich nowa funkcja kaskady pozwala usunąć każdą opcję, której nie chcesz dostosowywać.
Odchudzone domyślne migracje Po uruchomieniu nowej aplikacji Laravel pojawiają się domyślne migracje
z 2014 i 2019 roku. Te teraz będą dostarczane z usuniętymi datami i przeniesionymi do zaledwie dwóch plików.
Zmiany
tras Domyślnie dostępne będą tylko dwa pliki tras: konsola.php i .php internetowa. Trasy API staną się teraz opcjonalne za pośrednictwem php artisan install:api
, dając Ci plik tras API i Laravel Sanctum.
To samo z websocket broadcasting, php artisan install:broadcasting
.
Jądro konsoli usunięte
Jądro konsoli jest usuwane i zamiast tego będziesz mógł zdefiniować polecenia konsoli bezpośrednio w routes/console.php
.
Minimalna obsługa
PHP 8.2 To była wczesna decyzja, ale aplikacje Laravel 11 wymagają minimum PHP 8.2. Jeśli używasz starszej wersji PHP, teraz jest dobry moment, aby ją zaktualizować.
Podsumowanie
Jak dotąd wszystkie te funkcje są uważane za wersję beta dla Laravel 11 i mają na celu poprawę przepływu pracy. Rzeczy mogą i prawdopodobnie się zmienią, a my będziemy aktualizować ten post w miarę ogłaszania nowych funkcji.