[PHP]Architektura z Encjami bez ORM |
[PHP]Architektura z Encjami bez ORM |
24.11.2018, 09:44:00
Post
#1
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) |
Jak zaplanować architekturę projektu (Symfony) bez ORM?
Projekt bez zaplanowanej architektury: 1. Kontroler odbiera dane z ogromnego formularza, i wywołuje procedurę z setką parametrów. 200 linijek paskudnego kodu. Założenie poprawionej architektury: 1. tworzę encje dla danych, odzwierciedlające tabele bazy. Model 2. Tworzę bogate klasy serwisów 10 tabel==10 serwisów. Kod $productManager->createNewProduct($product; ...) 3. Ma być czysto w kontrolerach Taka sytuacja z życia powodująca problem: Frontend: Formularz z 100 pól, podzielonego na 10 zakładek i na każdej zakładce przycisk zapisz. Z każdej zakładki wysyłam porcję danych do zapisu. Dane z formularza powiązane są z 5 tabelami bazy. Każda porcja danych z kolejnych zakładek formularza zawiera częściowe dane wszystkich 5 tabel. Backend: Tworzę procedury dla każdej akcji zapisz. Każda procedura ma do zapisania 5-20 pól dla 1-5 tabel Problem: Stworzyłem klasy Model dla tabel bazy. Odbieram w kontrolerze dane z formularza. Wypełniam danymi klasy Model. Przesyłam do klasy Menadżera (w której jest procedura) instancje klas Model. I nagle się okazuje że w kontrolerze muszę poupychać danymi encje (setName, setAge, setXX) tylko po to by w menadżerze te dane odebrać (getName, getAge, getXX) i przekazać procedurze. Ani to ładniejsze ani przydatne. I co jeśli procedura ma wstawiać dane do 5 tabel, gdzie taką procedurę umieścić (Menadżer)? |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 10:28 |