Wpis z mikrobloga

Cześć.
Mam kilka pytań odnośnie #php i #symfony. Trochę o tym czytałem, ale chciałbym to potwierdzić. Do rzeczy.

1. Routing: annotations czy YAML? Czytałem opinie i większość osób korzysta z adnotacji, chyba jest nawet o tym w Symfony Best Practices.
2. Event listeners czy subscribers? Podobno Symfony sugeruje używanie Event Subscribers, jednak w wielu przykładach/poradnikach i tak częściej się widuje Event Listenery.
3. Entity lifecycle methods - warto używać? Powinno się w ogóle trzymać takie rzeczy w encji? Nie lepiej korzytać właśnie z listenerów/subsciberów?
4. Korzystanie z repozutorium w metodzie kontrolera. Czy lepiej jest tworzyć serwis i w nim korzystać z repozytorium, a serwis wstrzykiwać do kontrolera?
5. Formularze i konwersja danych, np. w bazie trzymana jest nazwa obrazka, a w formularzu przesyłany jest obiekt UploadedFile. Takie rzeczy to robić za pomocą data transformers czy listenerach? Spotkałem się z dwoma rozwiązaniami.
6. Ostatnio oglądałem ciekawą prezentację odnośnie używania DTO. Nie powinno operować się na encjach tylko na DTO? Jeżeli tak to czy można tworzyć wiele klas DTO, np. jedna do dodawania i druga do edycji encji?
7. Odnośnie RESTful API to czego się używa? FOSRestBundle czy API Platform? Czy zależy od projektu?

Na razie tyle mi przyszło do głowy. Dzięki.

#naukaprogramowania #programowanie #php #symfony
  • 4
@bananowy_szejk:

1. YAML, bo jest ładniej i jest separacja kodu.
2. Zależy od złożoności, EventSubsriber to tak naprawdę obiekt grupujący listenery, więc jeśli masz więcej niż jeden event w jakiejś "kategorii" eventów, to lepiej użyć subscribera.
3. Lepiej trzymać listenery w osobnej klasie.
4. Zależy, jeśli repozytorium jest używane tylko w jednej metodzie, to lepiej w metodzie, a jeśli we wszystkich metodach, to lepiej w kontrolerze, a jeśli coś pomiędzy to
@bananowy_szejk:

1. Yaml/XML, cokolwiek tylko nie adnotacje, adnotacje strasznie zaśmiecają kod, z tego samego powodu wywaliłem dokumentacje OpenApi z adnotacji
2. Nazewnictwo, doesn't matter, robi to samo choć subscriber często jest agregatem listenerów.
3. Nie będę się wypowiadać bo jestem przeciwnikiem całego doctrine i korzystam w projektach z DBAL'a
4. NIE. Spójrz na controller jako punkt wejścia w aplikacje. Jeśli robi coś po za przygotowaniem danych do wejścia serwisu aplikacji i
FOS'a nie używałem ale z tego co widzę w repo jest tylko pod starsze wersje symfony.


@micke: Wcale nie. Jest wersja FOS-a dla Symfony 4.2.

Ponownie nie jestem fanem Doctrine. Ogólnie DTO są dobrym pomysłem za równo na wejściu aplikacji (command / query) jak i wyjściu (obiekt z którego budujemy odpowiedź http np. json).


Osobiście nie używam DTO nawet wtedy, kiedy korzystam z CQRS, bo się nie opłaca. To jest tylko
@bananowy_szejk:

1. Routing: annotations czy YAML? Czytałem opinie i większość osób korzysta z adnotacji, chyba jest nawet o tym w Symfony Best Practices.


Spróbuj obu osobiście preferuje annotacje bo kod jest mniej rozstrzelony (chcę skasować akcję? kasuje jedną metode a nie metode + szukam definicji routingu w yaml'u.

2. Event listeners czy subscribers? Podobno Symfony sugeruje używanie Event Subscribers, jednak w wielu przykładach/poradnikach i tak częściej się widuje Event Listenery.


Znów