Knihovna AI Access sjednocuje OpenAI, Claude, Gemini, DeepSeek a Grok do jednoho
PHP rozhraní: konverzace, streaming, tool calling, structured output, obrázky,
embeddingy i batch. Nula závislostí, čisté PHP 8.3. Vznikala od roku 2024,
verzi 0.1 dostala na jaře 2025 a po šestnácti měsících konečně
jedničku, protože slíbit stabilní rozhraní nad pěti API, která stabilní
nejsou, je ta nejtěžší část celé práce.
Od verze 8.4 už extension imap není součástí PHP. Dvě
nejrozšířenější náhrady jsou pouhé obálky nad toutéž extension a ta
třetí si přitáhne dvacet čtyři balíčků včetně kusu Laravelu. Knihovna
dg/imap umí protokol IMAP sama: necelých devět set řádků kvalitního
objektového kódu a nula závislostí. Příběh o tom, jak z tenoučké
obálky nad ext-imap zbylo nakonec jen API.
Závazné konvence pro návrh MySQL schémat, kde si každé pravidlo muselo
obhájit odpověď na otázku proč. Od pojmenování tabulek přes rozdíl mezi
modified_at a updated_at až po collation, která vám tiše vypne CHECK
constraint, a ascii sloupec, který místo 404 vrátí pětistovku. Pravidel je
nakonec třináct, ale k tomu se článek přizná sám.
Používáte v CSS width: 100vw a web vám kvůli tomu dělá horizontální
scrollbar? Zjistěte, proč viewport jednotky ignorují posuvník a podívejte
se na 3 elegantní způsoby, jak tento bug opravit (pomocí JS, cqw nebo
@property)
Všechny dynamické jazyky nezávisle dospěly ke stejnému závěru: typy
vyhrály. TypeScript pohřbil čistý JavaScript, Python kapituloval, Ruby se
topí. AI dodala poslední hřebík do rakve duck typingu. Říkal jsem to od
roku 2007 a teď to konečně říkají i čísla.
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.
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.
Práce s časem v PHP je plná pastí. Podívejte se, jak přechod na letní
čas (DST) rozbíjí objekty DateTime a DateInterval, proč modify() vrací
nesmysly a jak tyto paradoxy elegantně řeší Nette Utils.
Celá komunita vám vtlouká do hlavy „prefer-const everywhere“ a lintery
vám to ještě automaticky vnutí. Jenže cpát const do každé
funkce není best practice, je to anti-pattern. Stačí dvě pravidla:
let pro proměnné, const pro skutečné konstanty.
Prázdný řetězec nebo NULL? Tahle zdánlivě banální otázka dokáže
rozložit dotazy, JOINy i nervy celých týmů. Ukážu, jak pomocí CHECK
constraintů v MySQL 8.0.16+ vynutit jeden přístup a skoncovat
s nekonzistencí jednou provždy.