// kategorie

PHP.

Moderní PHP v produkci — návrh domény, Symfony a novinky v jazyce.

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.

// k.php.meta
Článků73
Poslední článek2. září 2026
Průměrné čtení4 min
RSS feed/feed

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…

2 min čtení

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…

2 min čtení

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.

6 min čtení architektura kvalita kódu legacy migrace Symfony

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…

2 min čtení

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,…

2 min čtení

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.

11 min čtení anti-pattern architektura CQRS DDD Symfony

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.

13 min čtení code review DDD komunikace Symfony ubiquitous language

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?

27 min čtení architektura DDD

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.

17 min čtení architektura DDD

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.

14 min čtení architektura legacy migrace

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.

12 min čtení architektura DDD ERP

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.

17 min čtení ADR architektura mikroslužby monolit rozhodovací framework