Myslíte si, že $ v regulárním výrazu znamená konec
řetězce? Špatně. Znamená konec řetězce nebo ukončující
odřádkování, což tiše propustí i řetězec s \n na konci.
Řešení existuje, ale nejdřív si přečtěte, proč vás dokumentace PHP
klamala.
Property injection svádí svou stručností, jenže PHP neumí once-write-only
veřejné proměnné s typovou kontrolou. Tak jsem to emuloval přes
__set/__get a unset trik. Výsledek? Funguje. Otázka zní: je to čistá cesta,
nebo jen hezky zabalená prasárna?
Pět způsobů, jak předávat závislosti presenterům, jeden skoro nasazený
průšvih a šalamounský obrat na poslední chvíli. Dědičnost versus DI je
boj, kde konstruktor prohrává. Zvítězily inject metody a já u toho málem
školil Zend.
Konstruktor, setter, nebo public property? Rozebírám, proč žádný způsob
předávání závislostí není tak bezpečný, jak se tváří. Konstruktor
vypadá jako jasný vítěz, dokud nepřijde dědičnost a nerozhází
vám karty.
Syntaxe, chybové hlášky a hlavně mixiny. Tři preprocesory, tři filozofie.
SASS je ukecaný, LESS se při chybě zmůže na „Syntax Error on line XY“ a
Stylus vám dovolí vynechat skoro všechno. A mixiny? Ty mění způsob,
jakým píšete HTML, což je důležitější, než se zdá.
Po letech bez kódování jsem dal šanci CSS preprocesorům. Instalace,
workflow, první dojmy. Je vlastně smutné, že musely vzniknout, protože to
hlavně ukazuje, jak moc se zanedbal vývoj samotného CSS. První díl
praktického srovnání.
Pošlete v IE9 stejnou cookie dvakrát s různou expirací a prohlížeč ji
místo aktualizace tiše smaže. Klasický Microsoft moment. Reprodukce je
triviální, workaround v PHP taky, a obojí najdete uvnitř.
Service locator vypadá jako šikovná zkratka, ale třída, která si řekne o
„všechno“, o svých závislostech lže. Rozebírám, proč je to
antipattern, a kdy naopak něco za service locator označujete neprávem a
zbytečně se děsíte.
Většina vývojářů řeší lazy loading v DI továrničkou a má za to, že
je to samozřejmost. Jenže továrna předjímá, že objekt budete vyrábět,
zatímco vy ho chcete jen získat. Správná odpověď se jmenuje accessor a
kód vám za to poděkuje i při testování.
Třída Article si magicky sahá do databáze a vy nemáte tušení které?
Gratuluju, máte skrytou závislost. DI říká jediné: nic nesháněj, ať ti
to někdo dodá. Tak prostý princip, a přitom změní celý způsob, jakým
přemýšlíte o návrhu kódu.