Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przerośnięte kontrolery
acidm
post 1.07.2014, 20:40:58
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?
Go to the top of the page
+Quote Post
Turson
post 1.07.2014, 21:04:08
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ł.
Go to the top of the page
+Quote Post
ziolo
post 1.07.2014, 21:30:25
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ę
Go to the top of the page
+Quote Post
Pyton_000
post 2.07.2014, 09:19:09
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
Go to the top of the page
+Quote Post
owca_82
post 2.07.2014, 12:09:45
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
Go to the top of the page
+Quote Post
freemp3
post 2.07.2014, 13:13:35
Post #6





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


Cytat(owca_82 @ 2.07.2014, 13:09:45 ) *
- 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. wink.gif Moduły zostały po to stworzone, żeby grupować kontrolery, modele i widoki, które są odpowiedzialne za pewną część aplikacji np. frontend, CMS, itp.

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
Go to the top of the page
+Quote Post
vermis
post 2.07.2014, 13:42:23
Post #7





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


Cytat(acidm @ 1.07.2014, 21:40:58 ) *
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.


--------------------
Go to the top of the page
+Quote Post
acidm
post 2.07.2014, 16:54:29
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 wink.gif Moje kontrolery zaczęły przypominać klasy biblioteczne, stąd wątek.Dobra, czas na porządki...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 15:00