![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Rapide Framework
(IMG:http://adrian.livenet.pl/Rapide100.png) Rapide Framework powstał na bazie rozwiązań stosowanych w kilku frameworkach. Organizację i sterowanie w dużej mierze oparto na Zend Framework. Kierowałem się przede wszystkim prostotą. Mojavi (tym bardziej Symphony) jest moim zdaniem zbyt rozległe. Po całej aplikacji krążą obiekty kontekstów, kontrolera głównego... Nie, nie - to nie jest to, czego szukałem. Całe sterowanie w Rapide powierzono małemu i elastycznemu Front Kontrolerowi. Jądro podzielono na jak najmniejsze części pozwalające w przyszłości na szybką ich wymianę. Na pierwsze spojrzenie Rapide działa identycznie jak Zend Framework. Jednak po głębszym zapoznaniu się z frameworkiem, okazuje się, że Rapide jest znacznie wygodniejsze. Przede wszystkim Rapide poprawnie implementuje widok z MVC. W każdej chwili możemy zamienić widoki, aby prezentowane dane ukazały się np. w formacie CSV. Ponadto wiele czynności zostało zautomatyzowanych, dzięki czemu nie musimy wczytywac konfiguracji do akcji, czy też martwić się o kontrolę dostępu. Cechy frameworka
Kod do pobrania: http://vgm.pl/adrianpawlikpl/rapide/ Tworzenie kontrolera Kontrolery w aplikacji powinny dziedziczyć po abstrakcyjnej klasie Rapide_Controller. W zasadzie framework wymaga, aby kontrolery implementowały interfejs Rapide_Controller_Interface. Katalog kontrolerów definiowany jest w pliku konfiguracyjnym Rapide/config.php. Kontroler musi byź zapisany pod nazwą Kontroler.class.php. Kontroler jest kontenerem dla wszystkich akcji. Dla przykładu: kontroler Nowosci będzie zawierał akcje Dodaj, Pokaz, Usun, Edytuj itd. Klasa kontrolera musi nosić nazwę Controller_Kontroler, natomiast metody będące akcjami - AkcjaAction. Przykładowy kontroler
Teraz wystarczy w przeglądarce wpisać adres: http://TwojAdres.pl/www/?controller=Exampl...;action=Example. Rezultatem pracy frameworka będzie wyżej podany komunikat. Metody klasy Rapide_Controller Kontroler bazowy w Rapide został tak zaprojektowany, aby uprościć i przyśpieszyć budowę aplikacji. Poniższa lista zawiera metody, których warto używać: getParameter($sParameter) Zwraca parametr GET przekazany w adresie do kontrolera. W przypadku braku parametru wzraca null. hasParameter($sParameter) Zwraca wartość logiczną informującą, czy istnieje parametr GET przekazany w adresie. getConfig() Zwraca obiekt konfiguracji dla danego kontrolera. Dane konfiguracyjne pobierane są z tablic php zapisanych w katalogu konfiguracji kontrolerów. getView($sView) Zwraca obiekt danego widoku. Widok pobierany jest z katalogu widoków. getModel($sModel) Zwraca obiekt wybranego modelu. Model pobierany jest z katalogu widoków. getUser() Zwraca obiekt User, który pozwala na zapis danych sesyjnych. getLanguage() Zwraca obiekt języka. Dane językowe dla kontrolera ładowane są wcześniej w pluginie Rapide_Plugin_Language. forward($sController = null, $sAction = null, array $aParameters = array()) Pozwala na określenie następnej akcji do wykonania. Pozostawienie wartości pustych spowoduje forwarodwanie na domyślny kontroler. redirect($sController = null, $sAction = null, array $aParameters = array()) Pozwala wykonać przekierowanie na inną akcję. Pozostawienie wartości pustych spowoduje przekierowanie na domyślny kontroler. Każdy kontroler posiada domyślną akcję Index. Jest ona wywoływana, jeżeli akcja nie zostanie określona. Przykładowe kody Kontroler User - akcja zmiany hasla dla zalogowanego uzytkownika
Widok i szablon widoku dla tej akcji
Jak już wspomniałem - framework napisałem dla siebie. Mam nadzieję, że komuś może się przydać, chociaż w celach edukacyjnych. Pozdrawiam, Adrian J. Pawlik. Ten post edytował Prph 5.11.2006, 19:56:50 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nadal nie rozumiem, tych praw dostępu, może dlatego, że pierwszy raz mam z tym do czynienia...
Jak wygląda taka konfiguracja pliku kontrolera?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Przykład? Przypuśmy plik konfiguracyjny kontrollera z przykładu: np. /application/Config/Controller/example.php
Tak wygląda przykładowy plik konfiguracyjny?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) yyy...? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) hmm... może za dużo nad tym siedzę i mam już mętlik w głowie i wszystko mi się miesza. Mianowicie nie rozumiem jednej rzeczy. ... na podstawie jakich danych user jest identyfikowany czy może mieć dostęp do danej metody? Jak rozumieć metody: isAuthenticated() oraz setAuthenticated() w klasie Rapide_User(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? Czy one nie powinny być wywoływane w trakcie sprawdzania danych user'a o zalogowaniu?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Albo może inne pytanie... jeżeli autoryzacja się nie powiedzie to przekierowujemy usera na akcję z formularzem logowania? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Ehh... wszystko już mi się to miesza jak widać (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) , może ktoś mi rzuci światło na to, jak to dokładnie wygląda np. z akcją logowania usera na stronę w powyższym frameworku (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ten post edytował Quickest 7.09.2006, 18:21:55 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wszystko przez to ze nie udostepnilem dokumentacji. Nie umiem pisac dokumentacji :/
Konfiguracja kontroli dostępu Konfiguracja jest zapisywana w pliku konfiguracyjnym kontrolera. Domyslnie jest to application/Config/Controller/Nazwa.php Przykladowy plik wygląda następująco:
W tym przypadku dostęp będą mieli użytkownicy którzy posiadają grupy admin i moderator, ale nie posiadają grupy nieproszony_gosc. Czyli np. jezeli mamy uzytkownika Adrian z grupą moderator, to on uzyska dostęp. Jeżeli mamy użytkownika Joasia z grupami admin i nieproszony_gosc, to Joasia nie dostanie dostępu. Autentyfikacja uzytkownika odbywa sie w klasie Rapide_User. Za pomoca metody isAuthenticated() klasa informuje, czy użytkownik sie zalogował (o tym za chwile). Ponadto metoda getGroups zwraca tablice z grupami, jakie ma użytkownik. Można zdefiniować, aby dana akcja wymagała jedynie zalogowania użytkownika. Czyli nie musi ustawiać jakie grupy mają dostęp. Wystarczy wówczas zapisać taką konfigurację:
Wartosc Security moze byc dowolna. Wazne zeby sekcja Security byla utworzona. Oczywiście, wszystko nabiera sensu w chwili, kiedy użytkownik się zaloguje. Niżej przedstawiam akcję logowania:
Ostatnie linie akcji Login przedstawiaja sposob autentykacji użytkownika oraz ustawienie dodatkowych informaacji (np imie i nazwisko). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 20:18 |