Cytat
Więc jak najlepiej (oczywiście twoim zdaniem, bo co osoba to inne myślenie) zorganizować autoryzacje i uwierzytelnianie?
Ttak by twórca aplikacji wykorzystującej framework mógł szybko zdecydować i wprowadzić jedynie uwierzytelnianie - bo np. autoryzacja mu niepotrzebna.
Uwierzytelnianie zrobiłbym jako IF (byłoby jak plugin), a autoryzację wywalił do klasy, która nie łączyłaby się z frameworkiem. Najlepiej, żeby wrzucić ją do kontekstu, albo zrobić z niej singleton.
Cytat
Wg. moich ksiazkowych pozycji, moje rozumowanie nie jest w cale błędne.
Co prawda, książka poruszyła temat Intercepting Filter przy temacie Dekoratora,
ale wystepują tam właśnie filtry do autoryzacji, buforowania itd. A to, że taki filtr korzysta z zew. klasy przecież niczemu nie przeszkadza.
Implementacja wzorców jest różna, ale jakoś nie widzi mi się Autoryzacja jako IF. To po prostu nie pasuje, bo do autoryzacji musisz mieć dostę cały czas, a nie tylko przy pre- lub post-processingu.
Kod przejrzę później, bo jestem teraz naprawdę zajęty.
//obiecana recenzja

Przyczepię się tylko do filtrów. Kombinujesz z tym odkładaniem danych do rejestru. Spróbuj zrobić coś takiego:
Kod
class FooFilter implements Filter
{
public function execute($chain)
{
echo 'app starting...';
$chain->next();
echo 'app finishing...';
}
}
I teraz są 2 wyjścia:
- zrobić, żeby kontroler implementował InterceptingFilter
- zrobić wspólnego przodka dla akcji i filtrów, żeby mogły istnieć razem w łańcuszku
Ale myślę, że pierwsze rozwiązanie jest lepsze.