Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC, panel administracyjny i metody aplikacji
Forum PHP.pl > Forum > PHP
uncuncunc
Opieram swój FW na zasadach MVC, jestem przy budowaniu panelu administracyjnego dla wielu aplikacji... Panel jest sam w sobie aplikacją z własnym kontrolerem który powinien wczytywać tylko metody wybranej aplikajci. Jednak jak zrobić np. listę metod które mogą być używane w panelu? Mam ACL i to na jego podstawie odczytać wszystkie metody?

I gdzie ACL powinien być sprawdzany? W kontrolerze czy w routingu?
skowron-line
Cytat(uncuncunc @ 7.05.2012, 08:13:16 ) *
I gdzie ACL powinien być sprawdzany? W kontrolerze czy w routingu?

W modelu, zgodnie z wzorcem MVC kontroler przekazuje dane z modelu do widoku. A routing odpowiada za dopasowanie adresu do kontrolera i metody a nie do sprawdzenia uprawnien.

Zrób sobię jakąś metodę która będzie wywoływana przed wywoływana przed akcją i tam wywołaj model ze sprawdzeniem dostępu
w zend taka metoda to preDispatch (jeżeli dobrze pamiętam) a w kohanie before
marcio
Masz 3 wyjscia:
-Konstruktor/__call
-Hooki/Eventy
-Dispatcher(front controller)

Ja uzywam 1 i 3 metode bo system zdarzen uzywam do czegos calkiem innego
uncuncunc
marcio a mógłbyś rozwinąć wątek? Bo nie rozumiem jak __call ma mi ułatwić porozumienie panel <=> inna_aplikacja. I jak zbudować listę dostępnych opcji w panelu, właśnie na bazie ACL?
marcio
Co do acl-a http://marcio.ekmll.com/Vf/index.php/474 klase troche przebudowalem ale ogolnie logika jest taka sama.

Co do __call normalnie masz 2 rozne kontrolery czyli ten publiczny i ten dla administratora robisz __call i wykonujesz akcje
uncuncunc
ACL mam już zaimplementowany, podobny do tego co pokazałeś tylko na tablicach...

Jednak nie rozumiem tego wykorzystania __call()

Aplikacja1 ma swój kontroler "aplikacja" i w nim odpowiednie metody.
Panel ma też swój kontroler "panel", bo jest osobną aplikacją i również ma swoje metody... więc jak to ma być ze sobą połączone przez __call?
marcio
Bede musial poszukac to podesle kod ja tego nie implementowalem ale jak przegladalem aplikacje na google code/github to sie spotkalem tez z takim mykiem
uncuncunc
Ok. poczekam. I jesteś pewien że to było realizowane przez __call? Bo jakoś ta funkcja mi do tego nie pasuje.

edycja:
Na razie zrobiłem (chyba dobrze) coś w rodzaju sterownika app<>panel w kontrolerze panelu, gdzie zapisuję do zmiennej nazwę aplikacji i na tej podstawie tworzę nowy loader podający SPL podający ścieżkę do tejże aplikacji i na razie udaje mi się bez problemy odczytywać model, jeszcze sprawdzę czy wszytko działa poprawnie z wysyłaniem danych itp. ale powinno być ok... jak ktoś ma jakieś pomysły dotyczące obsługi wielu aplikacji z jednego panelu to z chęcią wysłucham.
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.