![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
wiem że temat brzmi w sposób nieco zagmatwany ale nie wiedziałem jak to inaczej nazwać. O co chodzi postaram się wyjaśnić na przykładzie
czy istnieje możliwość aby przed wywołaniem metody "a" została niejawnie wywołana metoda "before" czyli kolejność wywołania wyglądała by tak before => a idąc dalej,
i tu kolejność wywołań miała by wyglądać tak before => a => before => b. A idąc jeszcze dalej, czy metoda before może być informowana jaka metoda będzie wywołana po niej? jedyne co przychodzi mi do głowy to jakaś metoda call która przyjmie jako parametry nazwę metody i jej parametry ale takie rozwiązanie nie jest automatyczne i jeśli "się zapomni" użyć call to before nie będzie wywołany ;/ czy zrobienie czegoś takiego jest możliwe ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
@Dipter dzięki za linki, poczytam
@adbacz tylko że w php jest dziedziczenie (IMG:style_emoticons/default/wink.gif) i wszystkie metody są pisane tylko raz, a uprawnienia mam zapisywane w tablicy w każdej klasie osobno, czyli dla każdej klasy muszę tylko zmieniać uprawnienia jeśli mają być inne niż normalnie prosty przykład (wersja bardzo uproszczona )
jedyny problem to dziedziczenie zmiennych, więc będę musiał to pewnie wydelegować do osobnej klasy. A jeśli dobrze zrozumiałem to Twój sposób również nie rozwiąże "automatycznie" problemu przedstawionego w action_f3 - action_f3 ma inne uprawnienie niż f2 którą wywołuje @Crozin z wynalazków wolę nie korzystać (IMG:style_emoticons/default/wink.gif) fajne że koś robi coś w tym kierunku ale chyba jednak wolę nie ryzykować (IMG:style_emoticons/default/smile.gif) pod żadnym pozorem kodu sprawdzającego uprawnienia nie pchaj do klasy mającej robić główne zadanie aplikacji. Wykonaj sprawdzenie wszystkich koniecznych rzeczy przed ich wywołaniem. chyba nie do końca rozumiałem (IMG:style_emoticons/default/sad.gif) w dużym skrócie mam klasę nadrzędna dla wszystkich kontrolerów
tych metod praktycznie nie muszę ruszać, zawszę robią to samo - no może za wyjątkiem onError. i teraz aplikacja jest uruchamiana miej więcej tak(zaznaczam że jest to pseudo kod mający pokazać tylko schemat działania)
czyli sam wyjątek jest rzucany przez klasę i przez tę samą klasę jest obsługiwany; może dodam że wszystkie wywołania są robione na zewnątrz klasy kontrolera przy pomocy klasy ReflectionClass |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 17:40 |