Přímočaré přejmenování ENUM hodnot v MySQL je recept na katastrofu,
protože MySQL nahradí neznámé hodnoty prázdným řetězcem. Správný
postup má tři kroky: rozšířit, aktualizovat, uklidit. Jednoduché, když
víte jak.
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 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.
„Nemám čas“ v issue trackeru je jako říct Michelangelovi, ať vám
vymaluje obývák. Tyhle dvě slova spolehlivě rozpustí motivaci maintainera a
promění váš požadavek v digitální pomník lidské lenosti. 99 %
takových issues zůstane navždy nevyřešených.
SQL v 70. letech slibovalo, že s databází bude mluvit každý. Trvalo půl
století, než ten slib někdo splnil. Řeknete GPT česky, co chcete vědět, a
ono napíše dotaz i s triggery. Tentokrát ta revoluce funguje doopravdy.
Getter, který občas nemá co vrátit, je překvapivě záludný designový
problém. Rozebírám tři strategie: booleovský parametr, dvojici
has/get a variantu OrNull. Každá má své pasti a
žádná není bez kompromisů.
Postavil jsem kompletní regulární výraz schopný parsovat HTML 5, kousek po
kousku, od entit přes značky až po doctype. Funguje to. Jen vám to
k ničemu nebude. Ale aspoň už víte, že to jde.
Microsoft natočil oficiální video, kde Copilot pomáhá napsat regulární
výraz pro hledání HTML značek. Výsledek matchuje kde co a selhává na
triviálních případech. Tragikomická ukázka toho, jak se řemeslná
nedbalost šíří pod hlavičkou pokroku.
Napsal jsem stručného průvodce OOP v PHP, který vás provede od tříd po
výjimky bez akademického balastu. Jen fakticky správné základy, na kterých
můžete rovnou stavět. Třeba celou aplikaci v Nette.
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ší.