🐘 PHP & Symfony Digest

Denní přehled PHP, Symfony a ekosystému · pátek 3. července 2026

TL;DR

Symfony: údržbové verze a blížící se konec podpory 8.0 release symfony

Symfony na konci června 2026 vydalo synchronizovanou dávku údržbových verzí napříč podporovanými větvemi: 6.4.42 (LTS), 7.4.14, 8.0.14 a 8.1.1. Opravy zahrnují mimo jiné únik stavu v LogoutUrlGenerator pro asynchronní prostředí (SecurityBundle), zastaralý dev asset cache v dlouhoběžících runtimech (AssetMapper), opravu #[Ignore] na getterech (Serializer) a kompatibilitu s Relay 0.30.0.

Zásadní upozornění pro provoz: Symfony 8.0 dosahuje konce podpory (End of Support) 31. července 2026. Uživatelé by měli plánovat přechod na 8.1, kde probíhá i práce na přejmenování ContainerAwareInterface na ContainerProviderInterface a řadě oprav v ObjectMapperu a Messengeru (např. #[AsMessage] na abstraktních třídách).

A Week of Symfony #1016 a vývoj 8.2 symfony

Poslední týdenní přehled #1016 (15.–21. června 2026) hlásí 50 mergnutých pull requestů (41 kódu, 9 dokumentace), 26 uzavřených issue a 24 přispěvatelů. Byla vydána Symfony UX 3.2.0 a 2.36.1, které řeší dvě bezpečnostní chyby. Odstartovala nová série „Symfony AI Spotlight" a pokračují články „New in Twig 4.0" o sandboxu a expression parserech.

Ve vývojové větvi 8.2 přibývají nové funkce: Cron constraint pro validaci cron výrazů, jednorázové (single-use) podepsané URL, vizuální indikátor pro dumpnuté proměnné v profileru, podpora předávání neřetězcových parametrů do constraintů, konfigurovatelný allowedTimeDrift v OidcTokenHandler a podpora kovariantních šablon v TypeInfo.

PHP 8.5: patch 8.5.8 a životní cyklus release php

Řada PHP 8.5 pokračuje pravidelnou kadencí oprav — verze 8.5.8 je podle PHP.Watch plánovaná na začátek července 2026 a je nejnovějším vydáním v této řadě. PHP 8.5.0 vyšlo 20. listopadu 2025 a větev dostává opravy chyb a bezpečnostní záplaty do 31. prosince 2027 (aktivní podpora do konce 2026).

Připomínka hlavních novinek 8.5: nová syntaxe pipe operátoru (|>), nová URI extension pro parsování a práci s URL a možnost modifikovat vlastnosti přímo při klonování objektu. Ekosystém už 8.5 plně podporuje — PHPStan hlásí kompletní podporu od února 2026.

Doctrine ORM 2: konec životnosti posunut na 2027 doctrine

Doctrine tým aktualizoval plán End of Life pro ORM 2. Původně avizovaný termín únor 2026 byl posunut nejméně na únor 2027. Důvodem je pomalá adopce ORM 3 — podle instalací na Packagistu tvoří ORM 3 jen zhruba 25–30 % oproti ORM 2, což tým nepovažuje za dostatečné pro ukončení podpory starší řady.

Zároveň se ale zpřísňují pravidla: od března 2026 se do větve 2.x mergují už jen změny týkající se kompatibility s novými verzemi PHP (podpora PHP 8.5, 8.6 nebo 9.0). Tým doporučuje využít následující rok na naplánování upgradu aplikací na ORM 3. Aktuální stabilní řada je 3.6.x (poslední aktivita na Packagistu 27. června 2026).

PHPStan 2.2: nové typy a plná podpora PHP 8.5 tooling

PHPStan 2.2 („Unsealed Array Shapes, Safer Array Keys, and More") vyšel 28. května 2026, aktuální patch je 2.2.2 z 5. června 2026. Novinky zahrnují unsealed array shapes a nové typy decimal-int-string a non-decimal-int-string, detekci pojmenovaných argumentů, jejichž parametry jsou v podtypech přejmenované, a analýzu smyček pro dvojice goto-label.

Přibyla také invalidace result cache při změně Composer balíčku a nové pravidlo pro goto na nedefinovaný label na levelu 0. PHPStan nadále plně podporuje PHP 8.5 (od 13. února 2026). Připomeňme, že řada 2.0 přinesla level 10 pro ještě přísnější typovou kontrolu.

Composer: řada 2.9 v EOL, aktuální je 2.10.x tooling

Composer 2.9 dosáhl konce životnosti (EOL) 28. května 2026 — aktuálně podporovanou řadou je 2.10.x (poslední vydání 2.10.1 z června 2026), v aktivní podpoře jsou dvě větve. Uživatelům na 2.9.x se doporučuje aktualizovat.

Připomeňme klíčové funkce, které přinesla řada 2.9: automatické blokování balíčků se známými bezpečnostními zranitelnostmi ve výchozím nastavení (nahrazuje potřebu roave/security-advisories), nový příkaz repository pro správu repozitářů z CLI bez ručních úprav composer.json a automatické zotavení z jednoduchých konfliktů v lock souboru.