Předběžný pohled na Laravel 13
Laravel 13 je stále ve vývoji, ale díky politice podpory tohoto frameworku víme, že by měl vyjít v prvním čtvrtletí roku 2026. Tento příspěvek na blogu přináší předběžný náhled na plán Laravel 13 a nové funkce na základě rozpracovaných žádostí o stažení. Tento příspěvek budu aktualizovat měsíční s pokračujícím vývojem Laravelu 13, takže se podívejte na nejnovější změny a doplňky.
Laravel 13 - datum vydání a harmonogram
Podle oficiálních zásad podpory je vydání Laravelu 13 plánováno na 1. čtvrtletí roku 2026. Každá hlavní verze má rok a šest měsíců na opravy chyb a dva roky na opravy zabezpečení. Pro kontext: Laravel 12 byl vydán v únoru 2025 a bude dostávat opravy chyb do 13. srpna 2026 a bezpečnostní opravy do 24. února 2027. Pro srovnání, Laravel 13 bude zaměřen na PHP 8.3+ a očekává se kolem 1. čtvrtletí 2026 (s opravami chyb do 3. čtvrtletí 2027 a bezpečnostními opravami do 1. čtvrtletí 2028). Jinými slovy, na aktualizaci projektů máte dostatek času; Laravel 12 zůstane podporován i v roce 2027.
Nové funkce v Laravelu 13
Laravel 13 obsahuje jak základní a čistou verzi, tak nové funkce pro vývojáře. Několik sloučených a navržených PR však naznačuje, co se chystá. Mezi hlavní body patří:
Podpora Symfony 7.4 a 8.0
Framework je aktualizován tak, aby podporoval nejnovější komponenty Symfony (PR #56029). To znamená, že základní balíčky Laravelu (HTTP, Console atd.) budou po vydání verze 13 fungovat se Symfony 7.4 a 8.0.
Cache touch() metoda
Nový Cache::touch($key) (a odpovídající úložiště touch) byl přidán do PR #55954 prodloužit TTL (time-to-live) položky v mezipaměti. To umožňuje obnovit platnost klíče mezipaměti, aniž byste jej museli načítat.
Pořadí směrování subdomény
In PR #55921, trasy subdomén jsou nyní zaregistrovány před trasy bez domén. Tato změna zajišťuje, že trasy vázané na konkrétní subdomény mají při směrování přednost.
Omezení při spouštění modelu
PR #55685 zabrání vytvoření nových instancí modelu Eloquent během procesu boot() metoda modelu. V praxi se tím zpevňuje logika zavádění modelu tím, že je zakázána instanciace jiných modelů (což může způsobit neočekávané vedlejší účinky) během zavádění aktuálního modelu.
Požadavek na PHP 8.3
Laravel 13 zvýší svou minimální verzi PHP na 8.3 (z 8,2). Jinými slovy, celá kódová základna se aktualizuje na PHP 8.3, přičemž se upouští od starých polyfillů a zpětně kompatibilních hacků, aby se framework zefektivnil a "zrychlil". (Viz PR #54763).
Výchozí souběžnost klientského fondu HTTP
In PR #57972, PendingRequest::pool() je nyní výchozí hodnotou 2 pro souběžný provoz. Tím se vyhnete situaci, kdy si vývojáři mohou myslet, že sdružené požadavky jsou souběžné, ale nakonec se provádějí sériově, když je souběžnost ponechána. null.
Bezpečnější Request::get() chování (parita Symfony)
PR #58081 sjednocuje Laravel Request::get() chování se Symfony, aby se předešlo změnám, které by mohly způsobit rozbití, a zlepšila se kompatibilita s tím, jak Laravel postupuje vpřed s novějšími komponentami Symfony.
Gramatika MySQL: DELETE ... JOIN s ORDER BY + LIMIT
In PR #57196, gramatika MySQL v systému Laravel nyní kompiluje plnou verzi DELETE … JOIN dotazy včetně ORDER BY a LIMIT, čímž se zabrání tomu, aby dávkové operace mazání a spojování MySQL tyto klauzule tiše ignorovaly.
Správci: vazba instancí správců na vlastní uzávěrky ovladačů
PR #57173 dělá manažera extend() zpětná volání konzistentně přijímají vázanou instanci správce napříč různými třídami správců Laravel, což zlepšuje ergonomii vlastního ovladače (s poznámkami k aktualizaci, protože se jedná o zlomovou změnu).
Polymorfní pojmenování otočných tabulek (množné číslo)
In PR #56832, Laravel vylepšuje automatické generování názvů tabulek pro polymorfní otočné tabulky pomocí množného čísla a sjednocuje chování s dokumentací a běžnými konvencemi.
Události ve frontě: JobAttempted nyní odhaluje skutečnou výjimku
In PR #56148... JobAttempted událost nyní předává plný Throwable místo logického příznaku, což posluchačům poskytuje lepší kontext pro případy selhání. Tato změna je určena pro Laravel 13 jako zlomová změna.
Testování čištění: reset Str továrny mezi testy
PR #57296 obnoví Str faktorů na výchozí hodnoty při rušení testovacích případů, což pomáhá zabránit úniku stavu mezi testy.
Podpora předpon s pomlčkou
PR #56172 zavádí změny související s pomlčkovými předponami v oblastech, kde předpony ovlivňují chování, s diskusí naznačující citlivost na zlomové změny.
Polština oznámení: předměty e-mailu
PR #57884 aktualizace ověření předmětu e-mailu velkými písmeny a PR #57882 aktualizuje předmět oznámení o resetování hesla.
Každá z výše uvedených položek odkazuje na svůj PR na GitHubu, kde najdete všechny podrobnosti. Později se očekává příchod dalších nových funkcí, které budu průběžně dokumentovat.
Jak nainstalovat a vyzkoušet Laravel 13 ještě dnes
Protože Laravel 13 ještě nebyl oficiálně vydán, můžete si jej nyní vyzkoušet hlavně prostřednictvím instalačního programu Laravel nebo nástroje Composer v režimu dev. Pomocí instalátoru Laravel můžete například spustit:
laravel new my-app --dev
Nebo přímo v aplikaci Composer:
composer create-project --prefer-dist laravel/laravel my-app dev-master
Tím se vytvoří nový projekt Laravel s použitím dev-master (tj. Laravel 13). Pak můžete cd my-app a použijte Laravel jako obvykle (poznámka: abyste splnili nový požadavek, musíte mít nainstalované PHP 8.3). Tyto kroky vám umožní experimentovat s ranou kódovou základnou Laravel 13. Jako vždy buďte opatrní při používání dev verzí ve výrobě, ale je to skvělý způsob, jak si prohlédnout nadcházející funkce.
Vše výše uvedené vychází z aktuálního stavu vývoje. Budu nadále sledovat PR a aktualizovat tento příspěvek, jakmile se v Laravelu 13 objeví nové funkce. Zůstaňte naladěni!