Laravel 10 je tady

Trochu se zpožděním k nám dorazila nová verze Laravel 10. Pojďme se podívat co nového nám to opět přineslo.

Končí podpora PHP 8.0

V nejnovější verzi Laravel framework ukončuje podporu PHP 8.0. Minimální požadovaná PHP verze je tedy 8.1. Při srovnání masteru a větví 9.x můžeme vidět, že framework již využívá features verze 8.1, jako jsou například readonly properties.

Laravel Penant

Laravel Penant je balíček vytvořený Laravel týmem, který přichází s Laravel 10 a nabízí "Features Flags" pro naší aplikaci. Features flags pak prakticky umožňují postupně uvolňovat nové funkce, A/B testy atd. Díky tomu, že se jedná o oficiální Laravel balíček, si můžeme být jisti že se jedná o dobře napsaný a dobře otestovaný package, který nabízí praktické funkcionality.

Process layer

Pod tímto pojmem si můžeme představit mnohem jednodušší práci s procesy, které probíhají během runtime aplikace. Díky nového/přepracovaného API je tak práce, testování a spouštění CLI procesů efektivnější. Základní použití této novinky společně s dalšími příklady můžete vidět v pull requestu od Taylora Otwella:

use  Illuminate\Support\Facades\Process;

$result =  Process::run('ls -la');

$result->successful();
$result->failed();
$result->exitCode();
$result->output();
$result->errorOutput();
$result->throw();
$result->throwIf($condition);

Nativní typové deklarace

V Laravel 10 jsou přepracované všechny nativní typové deklarace, včetně těch, které si můžete vygenerovat. To znamená, že jakýkoliv vygenerovaný kód z frameworku bude mít type-hints a návratové typy.

Automatické invokable validační pravidla

Od nové verze jsou defaultně generované invokable validační pravidla. Když si tedy vytvoříte nové validační pravidlo pomocí artisanu, tohle je co můžete očekávat:

# Laravel 9 vytvari tridu ktera implementuje
# Illuminate\Contracts\Validation\Rule interface
artisan make:rule Uppercase
 
# Laravel 9 flag pro vytvoreni invokable a implicitni pravidla
artisan make:rule Uppercase --invokable
artisan make:rule Uppercase --invokable --implicit
 
# Laravel 10 vytvari invokable pravidlo automaticky
artisan make:rule Uppercase
 
# Laravel 10 implicitni pravidlo
artisan make:rule Uppercase --implicit

Profile option pro testy

V Laravel 10 je možnost využít možnost --profile, díky čemuž je jednodušší najít pomalé testy nebo si udělat přehled, které jsou pomalejší a díky tomu je nespouštět pokaždé.

Deprecations z Laravel 9

Jako s každou verzí, i zde najdeme řadu deprecations, které v nové verzi již nelze použít. Celý seznam najdete zde, společně z dokumentací jak upgradovat na Laravel 10.