![]() |
![]() |
![]()
Post
#1
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Powiedzcie mi czy dobrze myśle o tym wzorcu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mamy sobie FilterManager, i do niego ładujemy filtry (::addFilter, config xml, nie ważne jak). Filtry mogą się wykonywać przed lub po wykonaniu akcji. Przykład filtra : StartOutputBufferingFilter, AuthorizationFilter, CacheFilter. I na przyklad CacheFilter stwierdza, że mamy swieży cache i czy może on zaprzestać wywoływania akcji ? Albo AuthorizationFilter, wywoła akcje loginForm ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam pewne pytanie związane z tym wzorcem. Możliwe że w złe miejsce "wsadzam" obsługę tego typu rzeczy, ale poinformujcie mnie o tym :]
Przykładowa aplikacja, dodajemy kilka filtrów w tym filtr odpalający podaną przez użytkownika akcje. Wszystkie filtry w którymś tam momencie wywołują $this->NextFilter(); co powoduje przejście do kolejnego filtra. Jak przy takim schemacie umożliwić jednemu filtrowi wstrzymanie uruchomienia innego. Np. akcja sprawdza autoryzacje, ponieważ użytkownik jest niezalogowany zostaje uruchomiona akcja Login a nie podana przez użytkownika w parametrze akcja DeleteNews. Ale co ważne, cała reszta filtrów ("w dół") muszą być odpalane (np. filtr od Bemchmarka liczący czas musi być odpalony na samym końcu). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 01:41 |