![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Nie rozumiem jednej sprawy i proszę społeczność o nakreślenie co robić (IMG:style_emoticons/default/smile.gif) Mam problem w zrozumieniu laravela, modeli itp. Ostatnio analizowałem kurs laravela ( z uprzejmości nie podam adresu kursu (IMG:style_emoticons/default/wink.gif) ) na którym pan jawnie w kontrolerze wykonywał operacje na modelu, coś w deseń poniżej:
Jako że poszukuję pracy jako junior laravel developer to przygotowałem zadanie testowe zgodnie z tym kursem... ale moi rekruterzy napisali mi, że pomieszałem wszystko w kontrolerze itp. Pytanie- jak poprawnie używać kontrolera i modelu ? bo nieco zagmatwałem się w tych elementach. Jak rozumiem, kontroler steruje modelem, model wykonuje operacje ( najczęściej na bazie danych ) i zwraca dane do kontrolera, a ten kontroler dalej przekazuje dane do widoku. Jak powinienem zmodyfikować $user = new User(); aby poprawnie używać frameworka MVC? Proszę o pomoc w zrozumieniu tematu (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 4 Dołączył: 30.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
W dokumentacji przedstawiane są uproszczone przykłady zastosowania poszczególnych elementów frameworka, które mają demonstrować koncepty. W życiu codziennym, aplikacje często rozwiązują bardziej złożone problemy które wymagają napisania większej ilości kodu (tak jak w Twoim przypadku). Wtedy aby tworzyć zwięzły, czytelny i zrozumiały kod stosuje się zasady KISS, DRY, SOLID (Google) które narzucają m.in. logiczne wydzielanie jego fragmentów odpowiadających za pojedyncze procesy (np. zamykając je w odseparowanych od siebie serwisach).
Jeśli nie znasz jeszcze tych zasad/nie są one dla Ciebie intuicyjne, sugeruję zastosowanie bardzo prostej zasady która "na oko" powie Ci, czy powinieneś rozważyć refactoring: jeśli kod Twojej funkcji/metody nie mieści się w całości na ekranie (tj. musisz ją przewijać) to znaczy, że należy ją podzielić na kilka metod w ramach klasy lub sprawdzić, czy przypadkiem sama w sobie nie wykonuje zbyt wielu czynności - wtedy można opakować je w oddzielne klasy (serwisy), a w metodzie macierzystej użyć ich wywołań. Na przykładzie metody kontrolera loadDataToBase() z przesłanego przez Ciebie projektu, można wydzielić:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 03:20 |