Kompletně přepsaný kompilátor, ze kterého nezůstal ani řádek. Pět let
jsem se do toho bál pustit, protože to znamenalo v podstatě napsat vlastní
PHP-Parser. Dnes má Latte AST strom, neprůstřelný sandbox a kompilátor,
o jakém jsem roky snil.
Dvacet let jsem poctivě psal static u polí a ŘVAL KONSTANTAMI,
protože „se to tak dělá“. Pak jsem změřil jedno a zamyslel se nad
druhým. Oba důvody dávno zmizely. Čím větší blbost, tím tužší má
kořínek.
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.
Změřil jsem poměr dokumentace ku kódu u sedmi PHP frameworků. Výsledek je
překvapivě vyrovnaný, Nette je nad průměrem a jako jediný má kompletní
český překlad. Primitivní metrika, ale leccos prozradí.
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é.
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ě.
Po 13 letech dostal Nette svůj první CVE záznam, když taiwanský
výzkumník objevil RCE zranitelnost. Opravil jsem ji napříč všemi verzemi,
včetně těch dávno nepodporovaných, protože bezpečnost si nezaslouží
technologický dluh. Aktualizujte, prosím.
CSRF útok tu straší dvacet let a frameworky ho řeší způsobem, který
vlastně vyzve uživatele, aby ochranu obešel. SameSite cookie konečně
nabízí systémovou cestu ven. Rozebírám Lax, Strict, None, cookie stuffing
i to, proč při útoku správná odpověď zní: utéct.
Lokální vývoj bez HTTPS je jako řídit auto bez volantu. Sepsal jsem
kompletní postup od generování SSL certifikátu přes klikací peklo ve
Windows MMC konzoli až po konfiguraci Apache a nginx. Jestli se na konci
zobrazí zelený zámek, je to důvod k oslavě.
Dvě synchronní mutace dokumentace o rozsahu 3 MB, anglické fórum od roku
2008, kód bez jediného českého slova. Čeština je přidaný komfort pro
zdejší komunitu, nikoli default. A jak to celé funguje v praxi?