Dependency Injection Container configuration is, in reality, a Code

When using the dependency injection container there is a need for a lot of configuration. This article proposes a practice of treating this configuration as a code an organize it (separate it) accordingly its domain.

en 17. 8. 2019
Čas čtení: 2 minuty
PHP

Kefalonia

Greek island in the Ionian sea full of goats and both white-"sand" (marbles) and golden sand beaches.

― my traveling logs

en 7. 8. 2019
Čas čtení: 2 minuty
Cestování

Weekend in New York

City That Never Sleeps ― my traveling logs

en 4. 8. 2019
Čas čtení: 5 minut
Cestování

Replacing templating systems (Twig and Latte) with Components

The current market standard of server-side rendering in PHP is to use templating systems like Twig or Latte. This article will present an alternative that is type-safe (thus robust), easily testable and allow you to scale thanks to reusability.

In a nutshell: let's write some React components in PHP.

en 4. 4. 2019
Čas čtení: 5 minut
PHP

Tests should be right next to the code

It is a common practice to put your tests apart from the actual code of the application, usually into the tests folder. In this article, I explain why I see it as a bad practice and why you should always put them right next to the code they are testing.

en 18. 9. 2018
Čas čtení: 2 minuty
TestováníPHP

Via ferraty v okolí Arca 2018

V okolí Arca na ferratách jsem byl již podruhé. Tentokrát jsme nebydleli v kempu v Arcu, ale pronajali jsme si přes booking.com domek na úpatí hory nad Arcem. Cenově to je jen o trochu dražší než camp dole v Arco a luxus nesrovnatelný (pěkná sprcha, zahradní posezení s výhledem, krb na grilování,…). Vylezli jsme šest ferrat a zablbli si na windsurfech na Gardě.

cs 5. 8. 2018
Čas čtení: 3 minuty
Cestování

Dangerous implementations of time representation in today's programming languages

Many programming languages have some kind of object to represent time. In PHP it's DateTimeImmutable, in JavaScript it's Date. Python has it's datetime.datetime. All of them were designed in such a way, that they contain timezone as part of their time representation. And what's dangerous, they expose it (mostly directly via a method).

In this article, I will explain why it poses a danger to you and propose a technique to avoid it.

en 8. 5. 2018
Čas čtení: 4 minuty
PHP

Od-do a jiné intervaly jako matematické value objecty

Velmi často se s intervalem pracuje tak, že se prostě předají dvě hodnoty: dva parametry do funkce, dvě proměnné, nebo prostě "pole" o dvou položkách.

Tento přístup ale trpí dvěma neduhy:

  1. Předávání dvou objektů nezaručuje validitu intervalu.
  2. Operace nad intervalem vyžadují vlastní netriviální implementaci.

Řešení je snadné: interval vždy reprezentovat jako value object.

cs 24. 6. 2017
Čas čtení: 2 minuty
PHP

Jak na API (v PHP) bez controllerů

Skoro každá backendová aplikace má nějaké to API. Mnoho backendových aplikací dnes už komunikuje jen přes něj. Server-side rendering je na ústupu a frontendu vládnou aplikace v browseru a v mobilních aplikacích.

Jak tedy napsat dobře (v PHP) API? Tradiční způsob je použít důvěrně známé controllery/presentery a upravit routování. Proč to není nejlepší přístup a jak to zmáknout lépe.

cs 12. 1. 2017
Čas čtení: 7 minut
APIPHP

Testování PHP kódu

Testování aplikací není vždy tak snadné, jak se na papíře jeví. Svojí zkušeností jsem dospěl k několika zásadám a postupům, které se mi osvědčily a které se tu pokusím sepsat a částečně i zdůvodnit. Pomáhají mi k psaní čítelnějších a udržovatelnějších testů. Za hlavní přínos pak považuji snadnou rozšiřitelnost testů, jejíž potřeba přichází s rozšiřováním fukcionality projektu.

cs 6. 12. 2016
Čas čtení: 10 minut
TestováníPHP

Ohlédnutí se za prací pro DámeJídlo

Více než rok jsem se podílel na vývoji Dámejídla. Seznámil jsem se s Doctrine 2, naučil se hodně o testování a nadchl jsem se pro čistý kód.

S odstupem času se pokusím zhodnotit co mi práce pro Dámejídlo dala a co naopak dát nemohla.

cs 2. 12. 2016
Čas čtení: 6 minut
DámeJídlo.cz