Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Współdzielenie akcji/kontrolerów pomiędzy modułami
Forum PHP.pl > Forum > PHP > Frameworki
Gabrielx
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.
Riggs
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.
Gabrielx
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ć.
Riggs
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.
Gabrielx
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.
Riggs
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ę).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.