Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][SF]Event dispatcher, Listener
Forum PHP.pl > Forum > PHP > Frameworki
mimol
Witam. Czytałem sobie o event dispatcher w symfony2, ba nawet stworzyłem swój.
Tylko nie do końca rozumiem po co go używać. Czy mógłby mi ktoś pokazać na przykładzie kiedy on znajduje zastosowanie?

U mnie to wygląda ta. Mam addToCardAction w nim
  1. $dispatcher->dispatch('acme.addedtocart', new AddToCartEvent($id, $amount)

W konstruktorze eventa pobieram id, ilość
W listenerze loguje te rzeczy (używając monolog)

Oczywiście te wszystkie rzeczy mógłbym zrobić w kontrolerze, więc nie mam pojęcia po co korzystać z Eventów.
Mógłby by mi ktoś wytłumaczyć ogólną ideę?
destroyerr
Czy zajrzałeś do dokumentacji?
mimol
.... Oczywiście, że tak.
Napisałem przecież, że z tego korzystam
Chcę wiedzieć tylko po co? I w jakich przypadkach to się przydaje
Crozin
Przede wszystkim: Open/closed principle, czy ogólniej SOLID (korzystanie ze zdarzeń pomaga w implementacji wielu z wymienionych reguł w masie przypadków).
mimol
tak... ale ja nie wiem KIEDY to wykorzysywać
Podajcie jakiś przykład realny

Przecież tak jak ja to zrobiłem to nie ma sensu...
destroyerr
Cytat
Tylko nie do końca rozumiem po co go używać. Czy mógłby mi ktoś pokazać na przykładzie kiedy on znajduje zastosowanie?

Przecież w dokumentacji (w pierwszych akapitach) masz jasno podane do czego służy i jakiego wzorca to jest realizacja. Przykład też jest podany. Z tych informacji można dokładnie wywnioskować sens tego komponentu (nie ma w nim drugiego dna). Chcesz realne przykłady to przejrzyj sobie Doctrine Extensions.
poh
Ja listenera uzywam na przyklad wtedy, kiedy uzytkownik skomentuje moj content, to dostaje maila z powiadomieniem. Nie wiem czy zgodnie z przeznaczeniem, ale dziala i jest dla mnie ulatwieniem, bo nie musze pilnowac i robic tego recznie, tylko wystarczy raz.
m44
Cytat(mimol @ 16.07.2013, 19:59:56 ) *
.... Oczywiście, że tak.
Napisałem przecież, że z tego korzystam
Chcę wiedzieć tylko po co? I w jakich przypadkach to się przydaje


Na przykład przy "odchudzaniu" kontrolera możesz korzystać ze zdarzeń Doctrine:

http://richardmiller.co.uk/2012/10/31/symf...om-controllers/

Na ogół wszędzie gdzie chcesz dodać dynamicznie zależności bez modyfikacji już istniejących funkcji systemu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.