[ZendFramework]Współdzielenie akcji/kontrolerów pomiędzy modułami |
[ZendFramework]Współdzielenie akcji/kontrolerów pomiędzy modułami |
27.08.2012, 12:16:32
Post
#1
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 2 Dołączył: 24.03.2009 Ostrzeżenie: (0%) |
Witam.
Mam dwa moduły - admin, user. Oba moduly pozwalaja na logowanie się do aplikacji. Czy jest możliwosć dziedziczenia akcji pomiędzy modułami? Czy polecacie może inne rozwiązanie. |
|
|
27.08.2012, 13:14:23
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 13 Dołączył: 16.06.2007 Ostrzeżenie: (0%) |
A nie możesz zrobić jednego logowania i dostęp do modułu sprawdzać po roli (admin, user, guest)? ACL świetnie się do tego nada, w dodatku jeśli zabezpieczasz tylko moduły to konfiguracja będzie banalna.
|
|
|
27.08.2012, 13:21:28
Post
#3
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 2 Dołączył: 24.03.2009 Ostrzeżenie: (0%) |
Tak, tylko że nie mogłem znależć fajnego zobrazowania tego całego ACL'a. Masz jakieś fajne materiały, jak to wygląda w praktyce? Gdzie mam to po prostu wszystko umieścić.
|
|
|
27.08.2012, 15:56:05
Post
#4
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 13 Dołączył: 16.06.2007 Ostrzeżenie: (0%) |
Tu masz świetny wpis batmana na temat ACL http://blog.wilgucki.pl/2011/05/zend_acl-w-praktyce.html . Generalnie polecam poczytać tego bloga, dużo fajnych rzeczy o Zend.
W twoim przykładzie będą tylko 2 zasoby (resource) - najlepiej stwórz od nazwy modułu (admin, user). W pluginie pobierz sobie request->getModuleName() oraz rolę użytkownika (z Zend Auth) i użyj hasResource. |
|
|
27.08.2012, 16:38:14
Post
#5
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 2 Dołączył: 24.03.2009 Ostrzeżenie: (0%) |
Ok. Dziękuję.
1. W jakim miejscu najlepiej utworzyć ten plugin? 2. Napisałeś wcześniej żebym zrobił jedno logowanie - czyli jak mam dwa "module" user, admin, to mam przed modułami to utworzyć? Nie mogę wymyślić logiki dla mojej aplikacji. Ps. Jaka jest zasadnicza różnica pomiędzy helperem a pluginem? Bo np. zarówno plugin jaki i helper może być stosowany do widoku. |
|
|
27.08.2012, 17:28:38
Post
#6
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 13 Dołączył: 16.06.2007 Ostrzeżenie: (0%) |
1. Najlepiej w katalogu library zrób sobie podkatalog ze swoją "przestrzenią nazw" np. App_Plugin_ACL (oczywiście zapisujesz w library/App/Plugin/ACL) i rozszerzasz Zend_Controller_Plugin_Abstract i nadpisz metodę preDispatch();
2. Ja bym zrobił moduł default (czyli dostępny dla userów i gości) oraz admin. Oczywiście jak chcesz to możesz ustawić domyślny moduł na user. I w module user zrób kontroler np Profil i metody zalogujAction() wylogujAction(). Ad. PS. Helper widoku używany jest do generowania części layoutu (np. okienko Facebook, losowe zdjęcie, formularz logowania). Plugin nie generuje żadnych danych do widoku, raczej steruje aplikacją (przynajmniej ja tak robię). |
|
|
Wersja Lo-Fi | Aktualny czas: 20.09.2024 - 07:02 |