PHP

Video: Novinky v PHP 8.6

Sedm novinek z PHP 8.6 v necelých čtyřech minutách: částečná aplikace funkcí, Duration, clamp(), readonly, komentáře u parametrů, výčty a změna v session, na kterou si před upgradem dejte bacha.

// obsah 2
  1. 01 Co ve videu najdete?
  2. 02 Na co si dát bacha?

O PHP 8.6 jsem na blogu napsal sedm krátkých článků. Teď jsem je shrnul do jednoho videa, které má necelé čtyři minuty.

Kód ve videu je z článků, jen na pár místech trochu upravený, aby se vešel do obrazu.

Co ve videu najdete?

  • Částečná aplikace funkcí (0:12). Na místo chybějícího argumentu stačí napsat otazník a closure vytvoří PHP samo: str_replace(' ', '-', ?). Mně to dává smysl hlavně u callbacků typu array_map(), kde jsem doteď psal arrow funkce jenom kvůli přeskládání argumentů.
  • Třída Duration (0:41). Doba trvání jako objekt, takže u čísla 500 už nemusíte hádat, jestli jde o sekundy, milisekundy, nebo mikrosekundy.
  • Funkce clamp() (1:07). Nahradí kombinaci max() a min(), u které mě osobně pořadí nikdy nezůstane v hlavě.
  • Výchozí hodnoty u readonly vlastností (1:32). Ubyde konstruktorů, které existují jenom proto, že to jinak nešlo.
  • Komentáře u parametrů (1:54). Název parametru stačí napsat jednou a komentář si za běhu přečtete přes reflexi.
  • Novinky u výčtů (2:16). Výčet SortDirection pro směr řazení a vlastní __debugInfo().
  • Bezpečnější session (2:41). Tři nové výchozí hodnoty v konfiguraci.

Na co si dát bacha?

Na tu poslední. Výchozí hodnota session.cookie_samesite je nově Lax, takže když se vám na nějaký endpoint vrací POSTem cizí systém (platební brána, SAML přihlášení), prohlížeč s tím požadavkem session cookie nepošle. V tom případě je potřeba nastavit SameSite=None se Secure. Doporučuju si to projít dřív, než na 8.6 přejdete.

Michal Katuščák
Michal Katuščák

Navrhuji a vyvíjím aplikace nad Symfony, zajímám se o architekturu softwaru. Žiju v Českých Budějovicích.