![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ostatnim czasy trochę analizuje kod frameworka kohana, przy okazji ucząc się oop, generalnie ucząc się do czego można go wykorzystać. Kilka rzeczy rozumiem, ale jest sporo których nie rozumiem. Jedną z tych rzeczy jest klasa Event, która z tego co rozumiem, "uruchamia" metody klas. Przykładowo w pliku bootstrap.php znajduje się coś takiego:
Natomiast w pliku kohana.php (główny plik, "rdzenie" enignu) znajduje się taki kod: drugi parametr, który jest tablicą, kohana - nazwa "głównej klasy, shutdown - nazwa metody. Teraz moje pytanie, jakie płyną korzyści z zastosowania klasy event, oraz czy dobrze rozumuje, że na takiej zasadzie na jakiej to opisałem, działa? Strona dokumentacji: http://docs.kohanaphp.com/core/event mówi mi tylko tyle jak tego używać, ale jakie jest założenie używania tego, nie bardzo mi to uświadamia. Jeżeli znalazłby się ktoś kto mógłby mi to w skrócie opisać, nawet łopatologicznie - po wała korzystać z klasy event, to byłbym bardzo wdzięczny (IMG:style_emoticons/default/smile.gif) PS nie krzyczcie na mnie że głupi jestem - ja to wiem (IMG:style_emoticons/default/smile.gif) więc fajnie będzie jak ktoś pomoże mi przestać być głupim. Poniżej również załączam klasę event, dla nie siedzących w temacie, lub leniwych ;P Pozdrawiam, filip.
|
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Najlepiej będzie Ci to chyba zrozumieć na przykładzie zdarzenia system.404. Zdarzenie to uruchamiasz w ten sposób:
Wyświetla ono widok braku strony. Teraz np. w kontrolerze pobierasz dane na podstawie ID. Jeżeli dane zostały znalezione to spoko, wyświetlasz je w widoku. Jeśli nie (np. gdy ktoś ręcznie podmienił ID w adresie) to możesz wyświetlić widok braku strony uruchamiając właśnie wspomniany event. W skrócie: są to jakby zdefiniowane zdarzenia, które mogą zajść w systemie. Mechanizm eventów jest tak naprawdę bardzo przydatny, nie tylko w celu uproszczenia kodu (mógłbyś przecież ręcznie podstawić widok braku strony). Ja np. zaraz po przejściu routingu uruchamiam event, który sprawdza, czy użytkownik ma prawa do danej strony: Przed tym jednak sprawdzam, czy użytkownik jest zalogowany: czyli dodaję nowy event przed sprawdzeniem uprawnień. Oto kod tej metody:
I tu znowu pojawia się event. Jeśli strona wymaga uwierzytelnienia, a użytkownik nie jest zalogowany to wyświetlam mu stronę z formularzem logowania, czyli uruchamiam mój event system.401. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedź szybka prawie jak w komunikatorze (IMG:style_emoticons/default/biggrin.gif) dziękować panowie. Tak jak mniej więcej myślałem. Tyle że nie sądziłem, że można zrobić to nawet tak:
Bo w ten sposób to znacznie poszerza zastosowanie event'a. Teraz dostrzegam wiele miejsc w których można skrócić event'em wiele kodu (IMG:style_emoticons/default/biggrin.gif) Dzięki jeszcze raz za wytłumaczenie (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 21:08 |