🐘 PHP & Symfony Digest

Denní přehled PHP, Symfony a ekosystému · čtvrtek 16. července 2026
Mám dost dat k sestavení digestu. Píšu výstup.

TL;DR

PHP 8.6.0 Alpha 1 + čtyři bezpečnostní vydání php release

Dne 2. července 2026 PHP tým vydal hned pět verzí najednou. Čtyři jsou bezpečnostní opravy pro aktivně udržované větve: PHP 8.5.8, 8.4.23, 8.3.32 a 8.2.32 – všem uživatelům příslušné větve se doporučuje okamžitý upgrade. Detaily opravených zranitelností jsou k dispozici v changelozích na php.net/ChangeLog-8.php.

Zároveň byl spuštěn release cyklus PHP 8.6 vydáním PHP 8.6.0 Alpha 1. Jde o první testovací (neprodukční) verzi; druhá alpha (Alpha 2) je naplánována právě na dnešek, 16. července 2026. Alpha verze jsou určeny výhradně pro testery a vývojáře rozšíření – ne pro produkční nasazení. NEWS a UPGRADING soubory jsou dostupné v repozitáři php/php-src na GitHubu.

Časová osa pro PHP 8.6: soft feature freeze nastane 11. srpna 2026 (beta1), hard feature freeze (RC1) 22. září, a GA vydání je plánováno na 19. listopadu 2026. Po tomto vydání se PHP 8.2 přesune do security-only módu.

PHP 8.6 – přijatá RFC a klíčové featury php

PHP 8.6 se blíží soft feature freeze a přijatá RFC definují jeho profil. Partial Function Application v2 umožní syntakticky elegantní parciální aplikaci argumentů na callable hodnoty pomocí zástupného symbolu ?. Closure optimizations (přijato 13. 3. 2026) umožní PHP inferovat static u uzávěrů, které nepoužívají $this, což přinese měřitelné paměťové úspory. Nativní funkce clamp() omezí hodnotu na zadaný rozsah bez potřeby kombinovat min()/max().

Pro výčtové typy přibyde metoda BackedEnum::values(), která vrátí pole všech backing values bez nutnosti psát vlastní pomocný kód. RFC pro floating-point endianness modifiers (přijato 14. 3.) rozšíří modifikátory < a > v pack()/unpack() i na formátovací kódy plovoucí řadové čárky. Stále ve votingové nebo diskusní fázi jsou RFC na deprecations pro PHP 8.6 a aktualizaci PHP licence na 3-clause BSD (Modified BSD License).

PHP 8.5 (vydané letos) přineslo operátor pipe |>, vestavěnou URI extension dle RFC 3986/WHATWG, atribut #[\NoDiscard], syntaxi clone() s úpravou properties a podporu statických uzávěrů v konstantních výrazech. PHP 8.6 tak navazuje s důrazem na výkon a ergonomii typového systému.

Symfony UX 3.3.0 – Reprise, Sonner, Combobox symfony release

Symfony UX 3.3.0 bylo vydáno 15. července 2026. Největší novinkou je první třídní podpora Symfony Reprise v StimulusBundle – nové integrace pro Vite a Rsbuild, které fungují jako alternativa k AssetMapper a Webpack Encore. Podpora je zatím experimentální (API se může měnit), ale konfiguruje se jednoduše přes Symfony({ stimulus: './assets/controllers.json' }) ve vite.config.js. Balík @symfony/stimulus-bridge přestává být výchozí závislostí (patří specificky k Webpack Encore).

Toolkit rozšířila dvě nové Shadcn komponenty: Sonner (toast notifikace pro tranziturní feedback) a Combobox (vstupní pole s prohledávatelným a filtrovatelným výběrem pro autocomplete). Instalují se příkazem php bin/console ux:install sonner --kit=shadcn. Příkaz ux:install dostal také lepší UX – vyhledávání receptů je nově case-insensitive a při neexistujícím receptu nabídne nejbližší alternativy.

Byl přidán ComponentDocParser pro jednotný formát dokumentačních komentářů Twig komponent ({# @prop #}, {# @block #}). Z oprav: LiveComponent nově nevyhodí 500 při malformovaném hydration payload, správně zpracuje nullable collection properties a respektuje data-live-ignore při data-loading scanu. Autocomplete opravil LIKE ESCAPE klauzuli, která způsobovala chyby vyhledávání na PostgreSQL.

Symfony Week #1018 & #1019 – novinky vývoje 8.2 symfony

Týden #1018 (29. 6. – 5. 7.) zaznamenal 33 sloučených PR a release Twig 3.28.0 (3. 7.) se zlepšeními maker a sandbox mechanismu. Byly navrženy nové featury pro Symfony 8.2: Cron constraint pro validaci cron výrazů, single-use signed URLs, vizuální indikátor pro dumpované proměnné v profileru a podpora non-string parametrů v constraint třídách. Pro 6.4 byla opravena YAML parsování celých čísel s úvodním plusem a doplněny RFC5737/RFC3849 rozsahy do IpUtils::PRIVATE_SUBNETS.

Týden #1019 (6. 7. – 12. 7.) přinesl 48 PR a několik bezpečnostních a DX vylepšení. Security komponenta nově umožní zakázat přesměrování po odhlášení (logout.redirect: false), což je užitečné pro SPA a API aplikace. AssetMapper v debug módu bude ignorovat compiled assets, aby nedocházelo ke konfliktům s vývojovými výstupy. Serializer rozšířil CSV podporu o asociativní hlavičky sloupců pro mapování. Pro Messenger se chystá příkaz messenger:show k inspekci čekajících zpráv.

Validator dostane podporu pro invokable validaci kompatibilní s pipe operátorem – closure předaná jako constraint bude volatelná ve stylu $value |> validate(...). Byl také publikován nový SymfonyCasts tutoriál o ochraně odhlášení před CSRF útoky. Připravuje se Symfony 8.2 (bez pevně stanoveného data vydání), první čtyři řečníci SymfonyCon Warsaw 2026 jsou oficálně oznámeni.

PHPStan 2.2.x – unsealed array shapes a nové typy tooling

PHPStan 2.2.0 bylo vydáno jako hlavní minor verze po sérii 2.1.x (která dosáhla přes 50 patchů). Série 2.2 opravila 31 nahlášených problémů z větve 2.1 a přinesla klíčové rozšíření typového systému. Nejdůležitější novinkou jsou unsealed array shapes: array shapes jako array{a: int, b: string} jsou nyní striktně uzavřené (nepovolují extra klíče) a nelze je zaměnit s obecným array – tím se zpřísní typové ověřování kolekcí a odhalí dosud přehlédnuté chyby.

PHPStan 2.2 přidává nové vestavěné typy decimal-int-string a non-decimal-int-string pro přesné rozlišení řetězcových reprezentací čísel. Detekuje také pojmenované argumenty, jejichž parametry jsou v podtypech přejmenované, a hlásí to přes nový error identifikátor argument.parameterRenamedInSubtype. Přibyl konfigurační parametr reportUnsafeArrayStringKeyCasting pro řízení hlášení nebezpečného přetypování na stringové klíče polí.

Aktuálně nejnovější verzí je PHPStan 2.2.5 (packagist aktualizován 14. 7. 2026). Balík phpstan/phpstan-phpunit dosáhl verze 2.0.18 (vydáno 4. 7. 2026) a byl aktualizován v repozitáři php/php-src samotným dependabotem, což naznačuje rychlé přijetí. Rozšíření phpstan-drupal pro PHPStan 2.x je také již dostupné.

Doctrine ORM & DBAL – stav nejnovějších verzí doctrine

V červenci 2026 neproběhlo žádné nové vydání Doctrine ORM ani DBAL. Aktuálně nejnovější stabilní verze jsou Doctrine ORM 3.6.7 (vydáno 25. 5. 2026) a Doctrine DBAL 4.4.3 (vydáno 20. 3. 2026). Pro nové projekty se doporučuje kombinace ORM 3.x + DBAL 4.x; jejich vzájemná kompatibilita je explicitně udržována.

Doctrine ORM 2.x je od začátku roku 2026 v end-of-life fázi – přesné datum ukončení bylo upřesněno v říjnu 2025 v příspěvku „An Update on the ORM 2 End of Life" na doctrine-project.org. Uživatelé ORM 2 by měli migrovat na ORM 3; migrace se liší hlavně v oblasti Repository API, Lazy loading (nově přes PHP Proxy Pattern) a zpracování kolekcí. Komunitní balíky pro Laravel (laravel-doctrine/orm) jsou aktualizovány pro ORM 3.x.

DBAL 4 přinesl zásadní refactoring API pro správu schémat a přerušil zpětnou kompatibilitu s driverem rozhrání z DBAL 3. Doporučený postup migrace je postupný – nejdříve přechod na DBAL 4 (bez ORM), až poté upgrade ORM. Doctrine projekt udržuje aktivní blog na doctrine-project.org, kde jsou oznamovány EOL plány i release notes.