4. To za mało!
Job - czego potrzebowałem?
● możliwości wykonania dodatkowego kodu:
○ zawsze bezpośrednio przed handle()
○ zawsze bezpośrednio po handle()
○ gdy wszystko się uda
○ gdy coś zawiedzie
● dependency injection
● czysty kod (!)
● jednolity kod
6. I - Jak wygląda nowa klasa?
Co się zmieniło?
● run() - zamiast handle()
● nowe funkcje “prosto z pudełka” :
before(), after(), whenSucceeded() oraz
whenFailed()
Co zyskaliśmy?
● zyskaliśmy “lifecycle hooks”
7. Problem?
Obiecałem dependency injection
● nie ma handle() nie ma DI
Jak to obejść?
● PHP8 i “Attributes” otwierają ciekawą
możliwość bez konieczności robienia
bałaganu
8. II - Jak wygląda nowa klasa?
Autowire
● Jeden atrybut by wstrzyknąć je
wszystkie!
Korzyści
● klasa zostaje czysta
● wstrzyknięte zależności są widoczne
na pierwszy rzut oka