PHP.
Praktické texty o PHP tak, jak ho píšu v reálných projektech: Domain-Driven Design v Symfony, CQRS, agregáty, bounded contexts a migrace legacy aplikací přes Strangler Fig. Součástí je i průběžný přehled novinek v jednotlivých verzích jazyka. Nejstarší texty jsou z roku 2011, nejnovější z letoška.
PHP 8.6: Dokumentační komentáře u parametrů
Drobnost, která odstraňuje jednu otravnou duplicitu. PHP 8.6 umožňuje napsat dokumentační komentář přímo u parametru. Doteď se parametr musel pojmenovat dvakrát, jednou v hlavičce funkce a podruhé v…
PHP 8.6: Třída Duration
PHP konečně dostává vlastní typ pro dobu trvání, třídu Time\Duration. Ten problém zná asi každý. sleep() bere sekundy, usleep() mikrosekundy, stream_set_timeout() sekundy plus mikrosekundy zvlášť a v konfiguraci…
Schématik δ: Update po 10 letech
Moje logická hra běžela deset let na Symfony 3.1 a PHP 5.5, aniž bych v ní změnil jediný řádek. Na jeden prompt jsem ji přepsal na Symfony 8.1 a na PHP 8.5.
PHP 8.6: Funkce clamp()
Malá, ale příjemná novinka. PHP 8.6 přidává funkci clamp(), která ořízne hodnotu do zadaného rozsahu. Doteď se to psalo kombinací min() a max(). Funguje to, jen mi to…
PHP 8.6: Výchozí hodnoty u readonly vlastností
Readonly vlastnosti měly od začátku jedno nenápadné omezení: nesměly mít výchozí hodnotu. PHP 8.6 ho ruší. Když jsem tu před lety psal o readonly vlastnostech v PHP 8.1,…
Kdy je CQRS v PHP overkill? 3 signály, že si komplikujete život
CQRS je jen rozdělení jednoho objektu na dva. Složité je všechno, co si k němu lidi přibalí, aniž by to potřebovali. Tři signály, že platíte režii, ze které nic nemáte.
Ubiquitous language: Jak ho vynutit v Symfony projektu?
Ubiquitous language není slovník pro celou firmu, ale jazyk jednoho bounded contextu. Šest praktik, jak ho udržet v Symfony projektu, včetně toho, jak ho nechat hlídat CI místo reviewera.
Bounded contexts v PHP: Jak nakreslit mapu aplikace?
Jak event stormingem najít hranice domén, rozdělit PHP aplikaci na bounded contexts a implementovat je v Symfony. A kdy se do toho naopak nepouštět?
Agregáty v DDD: Kde nakreslit hranici?
Agregát je slovo, které se v DDD skloňuje nejčastěji a rozumí se mu nejmíň. Tři pravidla pro kreslení hranic agregátů, konzistence mezi nimi a ukázka v Symfony/Doctrine.
Strangler Fig v PHP: Jak migrovat zastaralé aplikace?
Strangler Fig pattern v PHP: Jak postupně migrovat legacy aplikaci na Symfony bez big-bang rewrite a bez výpadku? Manuál krok za krokem, anti-corruption layer, feature flagy, diagramy a kdy pattern naopak nepoužít.
Anti-corruption layer v praxi: Jak si nenechat rozbít doménu cizím ERP?
Integrace s cizím ERP nebo API třetích stran umí zničit čistý doménový model. Anti-corruption layer je způsob, jak se chránit. Ukázka v PHP.
Monolit nebo mikroslužby v PHP? Rozhodovací framework pro PHP týmy
Mikroslužby nejsou výchozí volba. 5 kritérií, případová studie a ADR šablona, aby vás architektonické rozhodnutí za rok nezabilo.