Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Yii] podejście do tworzenia panelu administratora
janek5
post 6.12.2014, 23:56:19
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:

  1. Tworzyć osoby moduł do panelu administratora czy trzymać wszystko w jednym miejscu?
  2. Co z modelami? Stworzyć jeden duży model i współdzielić go pomiędzy panel administratora i front (tylko nadpisywać metody rules(), beforeSave() itp.)? Czy tworzyć osobne modele dla frontu i administratora, co w przypadku, gdy taka sama metoda jest potrzebna i tu i tu?
  3. 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?

Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
dado
post 8.12.2014, 10:39:05
Post #2





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


I mnie bałaganu tym lepiej. Rozdzielaj co się da. Modele, Kontrolery. Oddzielny moduł to bardzo dobry pomysł. Do roboty!
Go to the top of the page
+Quote Post
Sephirus
post 8.12.2014, 12:33:52
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ę smile.gif

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...
Go to the top of the page
+Quote Post
Turson
post 8.12.2014, 12:37:21
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat(janek5 @ 6.12.2014, 23:56:19 ) *
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.
Go to the top of the page
+Quote Post
JoShiMa
post 26.06.2015, 17:11:44
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.


--------------------
Go to the top of the page
+Quote Post
viking
post 27.06.2015, 08:37:30
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ć.


--------------------
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: 14.08.2025 - 10:38