Košík je prázdný

Vydání PHP 8 přineslo vývojářům mnoho nových funkcí a vylepšení, které zvyšují efektivitu a bezpečnost psaní kódu. V tomto článku se podíváme na klíčové novinky v PHP 8 a představíme, jak je můžete začlenit do svých projektů.

JIT (Just In Time) kompilace

PHP 8 představuje JIT kompilaci, což je technologie, která dynamicky překládá části kódu během jeho běhu, což může vést k signifikantnímu zlepšení výkonu. JIT je nejvíce účinný pro aplikace, které provádějí komplexní matematické operace nebo mají velké množství podmínek a smyček. Pro aktivaci JIT je nutné nastavit opcache.jit v php.ini souboru. Hodnoty mohou být nastaveny na různé úrovně podle potřeby aplikace.

Named Arguments

Named arguments (pojmenované argumenty) umožňují předávat hodnoty do funkcí pomocí názvů parametrů namísto jejich pozice. To zlepšuje čitelnost kódu a eliminuje potřebu dodržovat specifické pořadí argumentů. Použití je jednoduché, například: array_fill(start_index: 0, num: 100, value: 50);

Attributes

Attributes (atributy), známé také jako annotations v jiných programovacích jazycích, nabízí možnost přidat metadata k deklaracím tříd, metod, funkcí, parametrů a vlastností. Atributy se v PHP 8 píšou jako #[Attribute]. Můžete vytvořit vlastní atributy definováním třídy, která implementuje rozhraní Attribute.

Union Types

Union types (sjednocené typy) umožňují deklarovat, že proměnná nebo návratová hodnota funkce může být jedním z několika typů. To je zapsáno pomocí znaku | mezi typy, například: public function foo(int|string $data): void {}. Tato funkcionalita zvyšuje flexibilitu a zároveň zachovává typovou bezpečnost.

Match výrazy

Match je nový typ výrazu, podobný switch, ale s lepší čitelností a bezpečností. Match automaticky porovnává výrazy pomocí strict typového porovnání (===) a nepotřebuje příkazy break. Syntaxe je jednoduchá: $result = match($input) { 0 => 'nula', 1 => 'jedna', default => 'jiné', };

Konstruktor property promotion

Tato funkce zjednodušuje zápis konstruktorů tím, že umožňuje deklarovat vlastnosti třídy přímo v seznamu argumentů konstruktoru. Místo klasického zápisu vlastností a jejich přiřazení můžete nyní použít: public function __construct(public int $id, public string $name) {}

Weak Maps

Weak Maps poskytují způsob, jak uchovávat objekty jako klíče bez zabránění jejich automatickému uvolnění garbage collectorem, pokud už nejsou nikde jinde použity. Jsou užitečné pro efektivní správu mezipaměti nebo sledování dalších dat bez nutnosti ručního uvolňování.

Nullsafe operátor

Nullsafe operátor ?-> umožňuje bezpečné volání metod a přístup k vlastnostem objektu, který může být null, bez nutnosti explicitních kontrol na null. Pokud je objekt null, celý výraz se okamžitě vrátí jako null.

Toto jsou jen některé z mnoha nových funkcí, které PHP 8 nabízí. Při jejich používání nezapomeňte testovat vaše aplikace, abyste se ujistili, že jsou kompatibilní s novou verzí a že využíváte všech výhod, které PHP 8 přináší.