Wpis z mikrobloga

Cześć!
Tworze małą apke w Symfony 4.3. Mam dylemat gdzie zrobić zapisywanie encji. Nie chce tego robić w kontrolerze. Zrobić katalog 'Model' i tam, czy w repozytorium? Nie wiem, czy jak dam do repozytorium i zrobie w jedynym pliku read/write, to nie będzie to zbyt skomplikowane. Z tego co kojarzę, to w symfony mapowane jest tylko jedno repozytorium do danej encji.

#php #symfony #programowanie #programista15k
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ofkoz: ja stawiam na kiss. Jak zwykły Crud to wszystko w akcji kontrolera (ofc. Z wykorzystaniem form type) jak w kontrolerze zostaje coś więcej niż persist I flush to wyciągam to do oddzielnej usługi EncjaManager albo bardziej specjalistyczne.
  • Odpowiedz
@ofkoz: jak akcje w kontrolerach będą mocno powtarzalne to też raczej wyciągam to do jakiejś warstwy abstrakcji zazwyczaj generyczny formhandler itp
  • Odpowiedz
@lewsky: @nowiutki: @bmLq: @bmLq: Dzięki za odzew :) Chyba najprościej będzie mi to w takim razie zrobić w repozytorium. W zasadzie chodzi tylko o persista i flusha. Z tego co widzę, to w repo nie ma dostępu to $this->getManager(), a jedynie do $this->getEntityManager(). Czy to jakiś problem? Z tego co kojarzę, to entityManager jest starszą wersją i wycofują go. Pewnie mógłbym managera przekazać przez
  • Odpowiedz
@ofkoz: To jest normalny problem dockera na Macu. Ma problemy z systemem plików. Poczytaj o zwiększeniu wydajności Symfony na dockerze dla MacOs jest sporo artykułów na ten temat. Ja bym ci polecał jednak przekazać EntityManagerInterace do metody w controlerze i po prostu zapisać ta encje. Ew stworzyć sobie serwis typu DatabasePersister, który to będzie robił. Jeśli jest to mała crudowa aplikacja to nie ma się co pchać w CQRS
  • Odpowiedz
@jackpolite: Dzięki kolego :) Chodzi bardziej o to, że musi przejść to przez CR. Ja bym sam zapis zostawił w kontrolerze przy takiej małej aplikacji. Spróbuję jeszcze zrobić jakiegoś prostego traita i z tym podziałać :) Miłego!
  • Odpowiedz