Dzień dobry!
Mam pytanko. Piszę sobie w Laravelu 5 pewną stronkę (serwis) internetowy. Mam pewne niejasności, gdzie powinienem umieszczać kod do obsługi danych z bazy. Prosiłbym więc Was, starych wyjadaczy, o kilka dobrych rad :)
Odczyt danych:
Gdzieś kiedyś usłyszałem o czymś takim jak "Repository Pattern", gdzie wszystkie findy (pobieranie danych) są robione w repozytoriach, które są potem wstrzykiwane za pomocą DI do kontrolerów. Tak też zacząłem robić, i jest to całkiem wygodne. Dzięki temu mogę stosować zasadę "skinny controllers", gdzie w akcji w kontrolerze są tak naprawdę tylko dwie linijki - jedna z wywołaniem funkcji z repozytorium, a druga ze zwróceniem widoku i podpięciem pod niego danych. Czy takie podejście jest poprawne?
Modyfikacja danych:
Jeśli się nie mylę, repozytoria to obiekty tylko do odczytu danych, nie powinny babrać się w żadną ich modyfikację? Struktura mojej aplikacji wygląda tak, że do każdej tabeli w bazie mam stworzony Model Eloquent (ten 'domyślny' z Laravela). W którym miejscu w kodzie powinien znajdować się zapis danych do bazy? Tzn. gdzie powinienem powoływać nowy obiekt modelu, ustawiać jego pola i wywoływać save()? Najprościej byłoby to robić w kontrolerze, ale taka koncepcja chyba odpada, bo kod byłby nie re-używalny. No i po drugie kontrolery muszą być "skinny". Jest jakiś wzorzec lub podejście, które rozwiązuje mój problem? Gdzie dodatkowo powinienem robić wszelkie obliczenia na danych przed ich zapisem?
Prosiłbym o pomoc, wskazanie jakichś pojęć z którymi powinienem się zaznajomić, podanie linków do artykułów.
Dziękuję :)