![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 3 Dołączył: 12.03.2011 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Kiedy kontrolery są przerośnięte? Od ilu linii (tak mniej więcej)?
Jak robićie CRUD-a w panelu admina do jakiegoś obiektu (np. user) to rozdzielacie na : kotroler=user,akcja=metoda czy user=folder a każda akcja to osobny kontroler? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
A co to znaczy przerośnięty kontroler?
Dla przykładu w Joomli to model może kilkaset linii a kontroler samo ciało klasy, po prostu jest klasa i tyle. Jeżeli chcesz dla akcji nowy user, edycja usera, usunięcie usera osobne kontrolery to kiepski pomysł. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 20 Dołączył: 17.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Zdecydowanie jeden kontroler na dany moduł (user) i wszystkie jego akcje w tym module - new, edit, delete.
Ja generalnie miałem/mam nawyk pisanie większości logiki w kontrolerach. Teraz programuje w Symfony2. I staram się przerzucać logikę do innych elementów- drobne rzeczy(np jakaś mała modyfikacja danych) jeśli się da to robię w encjach - a reszta to w osobnych usługach(klasach) dedykowanych do określonych rzeczy. A z kontrolera po prostu mam dostęp do tych usług i tam z nich korzystam aby wykonać daną akcję |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przerośnięty... powyżej 10 linijek... Wystarczy?
Dobry kod kontrolera może mieć 3 linijki - Inicjuj Model, - Pobierz dane - Wypluj do widoku Generalnie logika danych najlepiej ujęta w modelu dzięki czemu kontrolery masz małe, przejrzyste i czytelne. Wiadomo co robi. Akcje modelu biznesowo powinny być zorientowane na celu i wykonywać to co ma robić a nie n dodatkowych rzeczy |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 8 Dołączył: 22.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja to widzę tak:
- jeden kontroler na moduł z akcjami go obsługującymi - kontroler inicjuje środowisko modułu - model + widok - wszystkie akcje wyświetlające dane kierujesz do widoku, który sam pobiera sobie dane z modelu, dekoruje zgodnie z szablonem i wyrzuca to na wyjście |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
- jeden kontroler na moduł z akcjami go obsługującymi W takim razie jaki jest sens istnienia modułów skoro pakujesz tam tylko jeden kontroler? To tak jak by robić jedną akcje w kontrolerze. ![]() Przerośnięty kontroler jest w tedy, gdy działa wolno, nie możesz się połapać co on tak w zasadzie robi bo tyle tego jest nawalone i w większości przypadków bez ładu i składu. Tak jak napisał @Pyton_000 kontroler powinien być możliwie prosty. Większość obliczeń powinna znajdować się w modelach. Kontroler ma tylko przekazywać dane pomiędzy użytkownikiem, modelem i widokiem. Ten post edytował freemp3 2.07.2014, 13:13:49 -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Kiedy kontrolery są przerośnięte? Od ilu linii (tak mniej więcej)? Teoretycznie kontroler z jedną linią też może być przerośnięty. Spójrz na to trochę bardziej abstrakcyjnie. Kontroler zarządza przepływem w aplikacji i powinien pozwalać na łatwą zmianę tego przepływu. Jeżeli nie możesz łatwo pobrać danych z innego modelu i zmienić widoku na inny to znaczy, że za dużo logiki masz w kontrolerze. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 3 Dołączył: 12.03.2011 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
dzięki za info
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 15:00 |