PHP triky

NotORM 2.0 22.10.2026 17:57

schéma tříd Řekl jsem si, že trochu opráším NotORM a nakonec z toho bylo 170 commitů. V API se přitom nic zásadního nezměnilo, většina je jen údržba:

Nové funkce

Ve verzi 2.1 jsem odstranil podporu $db->table[$array]. Byl to skvělý nástroj, jak se střelit do vlastní nohy: Stačilo prosté $db->table[$_GET["id"]] a SQLi bylo na světě. Klíčům pole se totiž věří, což u zápisu $db->table[["iso_code" => $code]] dávalo smysl. Náhradou je $db->table($array)->fetch(), což s $_GET["id"] nedává smysl použít.

Vyřešil jsem všechny otevřené issues, pull requesty a připomínky na fóru, které jsem zavřel. Nepříjemná byla chyba schovávající řádky, pokud dotaz vracel stejnou hodnotu primárního klíče víckrát (#80) – ty se nyní vrací bez ID v klíčích.

Zdvojnásobil jsem počet testů na 76. Ty nyní procházejí ve všech pěti podporovaných databázových systémech. Umožnil jsem měřit coverage, na základě čehož jsem přidal několik testů – ty našly skutečné chyby.

Vytvořil jsem demo, které ukazuje, jak jednoduchý kód stačí k vykonání efektivních SQL dotazů.

Rozhodl jsem se nepokračovat v experimentu then, který by umožnil vykonávat více dotazů při jednom round-tripu. Claude mi na to řekl, že jsem předběhl dobu.

Adminer 6.1.1 – zvýrazňování výsledků hledání 12.10.2026 21:37

Adminer 6.1.1 přináší skoro 50 změn, nejvýraznější je zvýrazňování nalezeného textu. Nechtěl jsem, aby při hledání group = 6 byla šestka vysvícená ve všech řádcích, proto se zvýrazňuje jen při hledání podřetězce nebo ve všech sloupcích.

screenshot

Další zajímavé změny:

  1. Při editaci JSON se zaokrouhlovala velká čísla. Funkce json_decode má sice volbu JSON_BIGINT_AS_STRING, ta je ale zase převede na řetězce. Při řešení jsem se dozvěděl o (*SKIP) a (*FAIL) v regulárech: preg_replace('~"(?:[^"\\\\]|\\\\.)*+"(*SKIP)(*FAIL)|-?\d[-+.\deE]*+~', '"\\\\u0001$0"', $json) při značkování čísel přeskočí řetězce a je to rychlejší než preg_replace_callback.
  2. Při scrollování široké tabulky zůstane vlevo viset její editační odkaz. Obdobně název tabulky v přehledu databáze.
  3. Odkazy do dokumentace byly rozeseté na náhodných místech v podobě otazníků, které se ale používají třeba i pro chybějící data. Změnil jsem je na ikonu 📖, kterou jsem přesunul do hlavičky.
  4. V seznamu databází a schémat strašila systémová schémata. Přesunul jsem je do samostatné skupiny.

Ovladače

Pluginy