Aktywne Wpisy
kejmilek +42
Konfederussia nie chce Ukrainy w NATO. Woli mieć ukochaną Rosję na całej wschodniej granicy.
https://www.sejm.gov.pl/sejm9.nsf/agent.xsp?symbol=glosowania&NrKadencji=9&NrPosiedzenia=77&NrGlosowania=16
#wojna #rosja #ukraina #bekazkonfederacji #konfederacja #sramnakonfederacje
https://www.sejm.gov.pl/sejm9.nsf/agent.xsp?symbol=glosowania&NrKadencji=9&NrPosiedzenia=77&NrGlosowania=16
#wojna #rosja #ukraina #bekazkonfederacji #konfederacja #sramnakonfederacje
Rimbolo +6
Ale piękna, Anony. Tak chyba muszą wyglądać boginie, jeśli jakieś istnieją. Ehh, szkoda, że huop może se co najwyżej takie cudowne, śliczne dziewczyny pooglądać na IG. Brutalne. #rozowepaski #przegryw #zalesie #gorzkiezale
Chciałbym, żeby:
- funkcja przyjmująca maila w MailModel mogła wywołać funkcję dodawania ticketa w TicketModel
- funkcja dodająca odpowiedź do ticketa od konsultanta w TicketModel, mogła wywołać wysyłkę maila z odpowiedzią z MailModel
Niestety po zrobieniu zależności dostaję "Circular reference detected for service...".
Jak Wy, programiści za 15k, byście to zaprogramowali?
#symfony #php
taki zapis:
ticketModel:
class: Model\TicketModel
arguments: [@mailModel]
mailModel:
class: Model\MailModel
arguments: [@ticketModel]
wywala
i pytanie jest takie jak to inaczej ładnie rozplanować
http://symfony.com/doc/current/components/dependency_injection/factories.html
ewentualnie service zwykł który przyjmuje container z metodami do tworzenia ticketu i mail
wydaje mi się że powinno to zadziałąć ale jeszcze mi się nie zażyło żeby trzeba tak było robić.
@Jaslanin:
skoro nie działa to się domyśliłem że nie ma sensu ( ͡° ͜ʖ ͡°) dzięki za linka
Jeśli już, miej te dwie usługi, ale utwórz trzecią, która korzysta z obu.
Czyli specjalizuj, a potem komponuj (zamiast robić skomplikowaną sieć zależnych powiązań – niech będą zawsze jednokierunkowe).
1. TicketManagerController(TicketManager(Ticket, Mail))
2. TicketCreatorController(TicketCreator(Ticket, Mail))
Jeśli za pomocą dodatkowej warstwy chcesz zrobić z encji obiekt biznesowy to serwis stoi jeszcze wyżej.
DDD
(domain driven development
):https://www.youtube.com/watch?v=ajhqScWECMo
Powyższe jest dosyć zaawansowane, ale polecam obejrzeć – pewnie w przyszłości do tego wrócisz.
Tymczasowo jednak, domyślam się, że chcesz to napisać jako
SOA
(service oriented architecture
), więc kilka praktycznych porad:* usługi rób mocno wyspecjalizowane – dosłownie jedna metoda publiczna, która coś robi i konstruktor dla zebrania zależności
* z powyższego wynika też nazewnictwo – usługa
Problemy tego typu co we wpisie to miałem nie raz w innym, rozbudowanym systemie. Myślę że teraz mogę tam to eventami naprawić.
@fmfd: chodzi o to żeby nie "zaklejać taśmą" tylko zrobić dobrze ( ͡° ͜