Rubrika PHP

Jak si opravou pro PHPStan zadělat na bug

PHPStan řekne, že preg_replace může vrátit null, a vy to vyřešíte přetypováním (string). Gratuluju, právě jste fatální chybu proměnili v tichý prázdný string. Ukážu, proč je hlasitá chyba vždycky lepší než ta, o které nevíte.

Velký přehled porovnávání v PHP je tu!

Připravil jsem definitivní tabulky pravdy pro PHP 7.x i 8.x. Konec hádání, co udělá sort() s podivnými stringy, jestli se dají porovnávat DateTimy přímo, nebo kdy vám array_unique() potichu sežere data. Stačí se podívat na průsečík a víte.

Property Hooks v PHP 8.4: Revoluce nebo Past?

Gettery a settery byly provizorní řešení, než PHP dospělo. Jenže nové property hooks přinášejí záludnosti: ze signatury nepoznáte, jestli je property čitelná nebo zapisovatelná, pole se chovají překvapivě a reference vám podkopou validaci. Průvodce tím, co funguje a kde číhá past.

Readonly vlastnosti v PHP a jejich skrytá úskalí

Readonly vlastnosti slibují neměnnost dat, ale fungují spíš jako zámek na dveřích: co se děje uvnitř místnosti, to neuhlídají. Rozebírám záludnosti inicializace, mýty o konstruktoru, triky s referencemi a novinky z PHP 8.4, které konečně uvolňují zbytečně utažené šrouby.

Kompilační chyby v PHP: proč jsou stále problémem?

PHP 7 proměnilo fatal errory ve výjimky, ale kompilační chyby zůstaly nezachytitelné a sestřelí vám aplikaci jako za starých časů PHP 5. Syntaktická chyba hodí ParseError, dvě metody se stejným názvem vás položí bez šance na obranu. Řešení přes linter existuje, PHP 8.3 ho trochu vylepší.

Proč je operátor ?? holé neštěstí

Operátor ?? se rodil 12 let, aby dorazil přesně ve chvíli, kdy ho PHP přestalo potřebovat. Místo zjednodušení života dnes spolehlivě zatajuje překlepy a chyby. Byl bych radši, kdyby se na něj čekalo ještě déle.

Zapisovat nullable types s otazníkem nebo bez?

Roky jsem odmítal psát otazník u nullable typů, protože redundance mě fysicky bolí. Pak přišlo PHP 8.0 s promoted properties a konzistence mě donutila kapitulovat. Příběh o tom, jak vás vlastní principy doženou.

Jak probíhá shutdown v PHP a volání destruktorů?

Shutdown v PHP má svůj rituál a destruktory v něm hrají roli, kterou málokdo chápe správně. Globální objekty se bourají pozpátku chytrým algoritmem, ostatní dostanou jen zdvořilostní __destruct bez skutečného zrušení. A to nejlepší nakonec: volání destruktoru vůbec není garantované.

Jak napsat error handler v PHP?

Vlastní error handler v PHP vypadá triviálně, dokud nenaboříte půlku ekosystému. Stačí ignorovat pár pravidel o potlačených chybách a návratových hodnotách a máte v kódu zradu, kterou nikdo nečeká. Tady je návod, jak to udělat správně.

To je vše. Další články se teprve rodí.

phpFashion © 2004, 2026 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.