Wpis z mikrobloga

Możecie mi wyjaśnić po co są te całe eventy i dispatchery? Generalnie spotkałem się z sytuacją , w której po wykonaniu jakiejś akcji był tworzony event, który wysyłał emaila. Ale jaki jest tego cel? Nie rozumiem tego. #symfony #php
  • 7
@belkot1122: wyobraź sobie, że jakiś byt coś robi. Chcesz jego działanie rozbudować o jakąś nową funkcjonalność. Dzięki temu, że masz mechanizm eventów możesz to zrobić "z zewnątrz" nie modyfikując go bezpośrednio.
@belkot1122: Tylko docelowo, większa aplikacja. Np po dodaniu faktury kosztowej do zapłaty, apka robi:
- wysyła 3 różne emaile, wg różnych warunków (czyli conajmniej +9 linii bo IFy i zlecenie wysyłki)
- jak powstała faktura, to musi przeliczyć budżet
- jak został przeliczony budżet, to trzeba sprawdzić czy nie ma został przekroczony jakiś limit i tu znów może pójść np. wysyłka email
- trzeba sprawdzić czy sprzedawca na fakturze istnieje już
@belkot1122 nie wiem czy miałeś do czynienia z WordPress, ale były tam hooki. Coś się, wykona i podpinasz się pod to.

Ogólnie pozwala ci to lepiej ogarnąć kod. Rozbijasz go na części, tutaj robisz jakieś zadanie, powiadamiasz event, że coś się wykonało i subscriber nasł#!$%@? czy event się pojawił i wykonuje kolejną akcję. Nie musisz ogarniać klas klas o długości 1500 linijek z 50 metodami wewnątrz, tylko wszędzie masz te 20-50 linijek
@belkot1122: zamysł jest taki by łatwo można było podpisać się pod takie zdarzenia i coś robić.

Pomyśl o tym ile rzeczy może się dziać gdy np. użytkownik się zarejestruje. Każda taka czynność musiałbyś wepchnąć do logiki aplikacji, a tak po prostu dodajesz nowy listener czekający na zdarzenie rejestracji i tam wrzucasz logikę.

Dzięki temu Twoj kod jest dużo czystszy.