Víte, co znamená $ v regulárním výrazu?

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.

DI a property injection

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?

DI a předávání závislostí presenterům

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.

DI a předávání závislostí

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.

SASS, LESS, Stylus nebo čisté CSS? (2)

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á.

SASS, LESS, Stylus nebo čisté CSS? (1)

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í.

Bug in IE9: twice sent cookie is removed

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ř.

DI versus Service Locator

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.

DI versus Lazy loading

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í.

Co je Dependency Injection?

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.

To je vše. Další články se teprve rodí.

phpFashion © 2004, 2026 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.