![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 6.12.2014 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, moje pytania dotyczą Yii (v 1.1), ale tak na prawdę ogólnego podejścia do tworzenia wiekszych aplikacji. Tak w skrócie:
Z góry dzięki za pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 194 Pomógł: 2 Dołączył: 12.04.2004 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
I mnie bałaganu tym lepiej. Rozdzielaj co się da. Modele, Kontrolery. Oddzielny moduł to bardzo dobry pomysł. Do roboty!
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ad 1. Zdecydowanie osobny moduł, kod frontu i admina nie powinien być wspólny - lepiej mieć tu niezależność
ad 2. Opcji jest wiele. Najlepiej moim zdaniem mieć to osobno. Ogólnie zasada jest taka, że front i admin to praktycznie dwie różne aplikacje działające na tych samych danych. Sposób prezentacji i używania tych danych może być dla tych dwu aplikacji zupełnie inny toteż wymagane są inne modele. Są one jednak kłopotliwe i na pewno będzie wiele metod identycznych i tu i tu. Najbezpieczniejszym (lecz wbrew DRY) sposobem są zupełnie osobne modele z powtarzającym się kodem. Możesz jednak pokusić się o jakieś dziedziczenie podstawowych metod używanych w obu modułach - na zasadzie ogólnego modelu i dwóch modeli z niego dziedziczących (jeden dla front i jeden dla admin). Wspólne modele też nie są czystym złem ale może się jednak zdarzyć, że nadpisanie jakiejś metody pod front popsuje coś w admin itp itd... ad 3. Nie znam - nie piszę ![]() Ten post edytował Sephirus 8.12.2014, 12:34:51 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Typowe dla Yii, korzystacie ze scenariuszy czy tworzycie modele CFormModel i implementujecie własny zapis z wykorzystaniem modelu CActiveRecord dla poszczególnych formularzy? Czy jeszcze inne podejście? Gdy dane z kilku formularzy trafiają do jednego modelu (co jest normalne), scenariusze pozwalają odróżnić, o walidację którego formularza i jego pól chodzi. Jestem zwolennikiem tego rozwiązania. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Korzystam z CFormModel i definiuję scenariusze dla różnych formularzy bazujących na tej samej tablicy w bazie (typowe na przykład dla usera gdzie masz formularz rejestracji, logowania i parę innych). W takim modelu tworzę metodę save jeśli zapis do bazy jest bardziej "fikusny" i tam za pomoca modelu (modeli) ActiveRecord zapisuję. Ale nie twierdzę, że to najlepsze podejście. Dopiero się uczę.
A jeśli chodzi o sam panel to wolę osobny moduł ze wstępnie wygenerowanymi za pomocą gii kontrolerami i widokami. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zależy co rozumiesz przez model. Czy active record, czy zwykłą encję - nazewnictwo z czasem ulegało zmianie ale w niektórych FW bywa jeszcze jednoznaczne. Jeśli encja reprezentuje zbiór danych z zewnątrz (BD, JSON, cache, cokolwiek) z mapowaniem np kolumna w bazie -> pole klasy z geterami/seterami to można spokojnie trzymać w module frontu. A już obsługę tego front/admin. Jeśli AR to IMO lepiej rozdzielić.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:38 |