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: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%)
|
a masz moze przyklad aplikcji zbudowanej za pomoca Rapide?
i jeszcze takie pytanie czy dodawanie jakis tekstow w szablonie musi byc takie dlugie?
nie mogloby byc tak ze jezeli ladujesz jakis widok to razem z nim ladujesz plik z tlumaczeniami, albo pobierasz odpowiednie tlumaczenia z bazy otrzymujac tablice ktorej mozesz juz normalnie uzywac w szablonie.
moze da sie tak? Ten post edytował AxZx 3.01.2007, 16:30:37 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
a masz moze przyklad aplikcji zbudowanej za pomoca Rapide? O ile Rapide jest w zasadzie skonczone (framework gotowy, ale wszystko wychodzi dopiero w praniu), to dokumentacji i przykladow nadal brak. Do projektu dolaczyl sie Jakub Kozicki, ktory obiecal pomoc przy dokumentacji. Wiem, ze pisze teraz projekt na Rapide. Moze uda mi sie go przekonac do udostepnienia fragmentow kodu. Ja sam pisalem jakis czas temu Newsletter. Nie zostal ukonczony, popniewaz byl jedynie proba frameworka. Problem teraz jest taki, ze nie jest kompatybilny z najnowsza wersja Rapide, w ktorej nieco zmienilismy API. Przede wszystkim usuniecie apletow na rzecz kontrolerow, ktore mozna osadzac w szablonie, jako pluginy widoku (np. kontroler Menu, akcja Administrator wyswietla w danym miejscu menu administratora). i jeszcze takie pytanie czy dodawanie jakis tekstow w szablonie musi byc takie dlugie?
Oczywiscie, ze nie musi... Taki efekt jest uzyskany przez mocny podzial plikow jezykowych. W zasadzie kazda akcja zawiera wlasny plik. Nie jest to jednak narzutem ze strony Rapide. Mozna bez problemu wszystkie tlumaczenia zamiescic w pliku nazwaJezyka.php w katalogu Language/. Mozna tez inaczej rozmiescic pliki jezykowe, np: Language/ Polish/ Nowosci.php Uzytkownicy.php Teraz wystarczy:
Zaleta Language z Rapide jest elastytcznosc. Nie musimy martwic sie o ladowanie jezykow. Jezeli odwolujemy sie do jakiegos klucza w jezyku, a on nie istnieje, Rapide sprobuje odnalesc pliki jezykowe dla tego klucza. Kolejne odwolania juz nie powoduja poszukiwania pliku, bo jest on zaladowany. Wczesniej odpowiedni plugin frontkontrolera byl odpowiedzialny za ladowanie plikow jezykowych. W praktyce okazalo sie to malo wygodne. Naklonie Kube Kozickiego, aby pomagal rozwiazywac problemy z Rapide. Sam zapoznal sie z Rapide, przeczytal dokladnie kod, zglosil kilka poprawek, kilka ulepszen. Jego porady moga byc naprawde cenne. Pozdrawiam, Adrian. |
|
|
|
Prph [Framework] Rapide Framework 7.09.2006, 01:59:05
Quickest Świetny framework - podoba mi się... bar... 7.09.2006, 14:15:48 
Prph Cytat(Quickest @ 7.09.2006, 13:15:48 ... 7.09.2006, 15:49:05
hwao Wyglada praktycznie tak samo jak Zend Framework. K... 7.09.2006, 15:11:07
Turgon Rzut na sam widok katalogów wygląda jak Zend.
Pow... 7.09.2006, 15:26:20
splatch Przede wszystkim - brak jakiejkolwiek dokumentacji... 7.09.2006, 18:13:49
Quickest Nadal nie rozumiem, tych praw dostępu, mo... 7.09.2006, 18:18:32 
Prph Wszystko przez to ze nie udostepnilem dokumentacji... 7.09.2006, 19:06:38
Quickest Teraz już wszystko jasne jak słońce, gdy zobaczyłe... 7.09.2006, 21:41:51
Prph W szablonie mamy możliwość uży... 8.09.2006, 09:07:52
NuLL A tak na raty skaczac po plikach
form.class.php
... 9.09.2006, 02:03:49 
Prph Cytat(NuLL @ 9.09.2006, 01:03:49 ) ar... 9.09.2006, 07:58:36
hwao Rapide_Util_Syntaxer_Php
Zaskoczyłeś mnie... roz... 9.09.2006, 08:17:10
seaquest Cytat(Prph)A tu mnie zaskoczyles (mile). O tym nie... 9.09.2006, 08:21:06
Prph @hwao: dzieki za informacje. Mialem pozniej zabrac... 9.09.2006, 08:58:38
thornag Ja am takie pytanie:
Tutaj odwolujemy sie do meto... 11.09.2006, 12:37:02
Prph Ad1. Przeoczenie. Powinno byc static. Dzieki.
Ad2... 11.09.2006, 22:00:44
Apo Prph a mógłbyś wyjaśnić bardziej działanie klasy R... 17.09.2006, 16:44:17
Prph Widok rozszerzony sluzy do dekorowania tresci. Wez... 17.09.2006, 18:50:03
dzobert Czy jest jeszcze jakieś miejsce skąd można pobrać ... 5.11.2006, 17:42:18
Prph Witam!
Przepraszam, za zly adres - skocznczyl... 5.11.2006, 19:56:05
darektbg Witam
Przeglądając kod wywnioskowałem, że obsługa... 10.11.2006, 16:08:16
envp Świetnie, ale gdzie w Applecie dostęp do modelu? 11.11.2006, 16:48:15
Prph @darektbg:
Tak mniej wiecej to wyglada. Pracuje na... 12.11.2006, 10:52:14
envp Zauważyłem pewną nieścisłość - aplet wywoływany z ... 12.11.2006, 15:35:27
Prph Owszem, pluginy nie sa obslugiwane. Ale IMHO to ni... 30.11.2006, 10:35:45
J4r0d Czy ktoś kto korzysta z svn mógłby pobrać nanowszą... 3.12.2006, 12:43:46 
Prph Cytat(J4r0d @ 3.12.2006, 12:43:46 ) C... 3.12.2006, 20:08:14 
J4r0d Cytat(Prph @ 3.12.2006, 20:08:14 ) W ... 3.12.2006, 20:42:08
dr_bonzo A tak trudno w koncu zaczac korzystac z svn'a?... 3.12.2006, 13:41:20
Prph Wyslalem nowe.
Adrian.
Wczoraj poprawilem kilka ... 4.12.2006, 12:35:36
normanos Czy Rapide ma aspiracje (i plany) stać się poważny... 10.01.2007, 19:48:09 
Prph Cytat(normanos @ 10.01.2007, 19:48:09... 10.01.2007, 22:00:30
envp Hm z tego co wiem to tworzą go 2 osoby, dodatkowo ... 10.01.2007, 21:32:50
normanos Cytat(envp @ 10.01.2007, 21:32:50 ) H... 11.01.2007, 10:14:34
Turgon Co do Forum i Dokumentacji ja mogę się tym zająć ... 11.01.2007, 10:25:38
Prph Witam,
Od lutego na pewno wiele sie zmieni. Zakon... 11.01.2007, 13:39:46
Turgon Prph: Gdzie się zgłaszać:D? 12.01.2007, 10:37:07 
Prph Cytat(Turgon @ 12.01.2007, 10:37:07 )... 12.01.2007, 13:59:05
normanos to ja poczekam aż będzie już coś wiadomo z tych p... 12.01.2007, 14:18:39
krzyszbi witam
framework zapowiada się ciekawie
ale mam dw... 12.01.2007, 14:41:40 
Prph Cytat(krzyszbi @ 12.01.2007, 14:41:40... 13.01.2007, 22:23:12
envp Witam,
W projekcie Rapide ruszyło oficjalne forum... 12.01.2007, 20:56:05
normanos super, tylko postawiliście by to na czymś porządny... 13.01.2007, 13:27:44
Turgon Normanos: ja to im mówiłem, ale jak widać propozyc... 13.01.2007, 15:37:41
eS... Czekam na forum i na jakieś przykłady/tutorial jak... 14.01.2007, 00:13:17
envp Forum zostanie zmienione na inne w najbliższym cza... 14.01.2007, 01:59:27
Turgon Zasadniczo na co ? 14.01.2007, 10:24:15
envp Zasadniczo to powstał mały problem : myBB nie ma j... 14.01.2007, 10:31:11 
normanos Cytat(envp @ 14.01.2007, 10:31:11 ) Z... 15.01.2007, 15:04:44
Turgon myBB, ja mogę przetłumaczyć ;] Tylko trza będzie s... 14.01.2007, 10:35:53
envp Nom, albo poczekać na polskie wsparcie... ;/ 14.01.2007, 11:30:42
Turgon Ono nigdy nie powstanie raczej, bo Polaki leniuchy... 14.01.2007, 19:39:39 
Prph Cytat(Turgon @ 14.01.2007, 19:39:39 )... 14.01.2007, 20:42:53
Turgon Ta jest panie generale
Na jutro postaram si... 14.01.2007, 20:51:49
mike_mech ~Prph, ~envp, ~Turgon jeśli nie potraficie so... 15.01.2007, 19:33:28
elem ..... kawał dobrej roboty 16.01.2007, 02:20:57
Prph Witam,
Wczoraj przemianowaliśmy wersję ... 18.01.2007, 11:27:06
eS... A kiedy powstanie dokumentacja, narazie robicie la... 18.01.2007, 14:44:14 
Prph Cytat(eS... @ 18.01.2007, 14:44:14 ) ... 18.01.2007, 15:16:32
AxZx mam takie pytanie, moze troche ogolne
jaka przewa... 22.01.2007, 23:13:10 
Prph Cytat(AxZx @ 22.01.2007, 23:13:10 ) m... 23.01.2007, 00:30:54
AxZx troche skomplikowane to
jezeli chcialbym zeby zami... 23.01.2007, 22:52:31 
Prph Cytat(AxZx @ 23.01.2007, 22:52:31 ) t... 24.01.2007, 00:00:39
ikioloak Na swojej stronie reklamujesz Rapide jako pierwszy... 24.01.2007, 13:56:16 
Prph Cytat(ikioloak @ 24.01.2007, 13:56:16... 24.01.2007, 17:01:31
normanos społeczność się zacznie jak będzie dokumentacja pr... 24.01.2007, 21:53:20
sf http://www.mojavi.org/ - Rapid Framework (Mojavi 4... 28.01.2007, 09:28:29 
Prph Cytat(sf @ 28.01.2007, 09:28:29 ) htt... 28.01.2007, 12:09:52 
mike_mech Cytat(Prph @ 28.01.2007, 12:09:52 ) T... 30.01.2007, 20:24:07 
Prph Cytat(mike_mech @ 30.01.2007, 20:24:0... 30.01.2007, 20:30:43 
mike_mech Cytat(Prph @ 30.01.2007, 20:30:43 ) G... 30.01.2007, 20:33:05
bim2 Przyjżałem sie rapidowi, i on jest porpostu babast... 28.01.2007, 11:43:10
AxZx Cytat(bim2 @ 28.01.2007, 11:43:10 ) P... 28.01.2007, 12:22:24 
Prph Cytat(AxZx @ 28.01.2007, 12:22:24 ) m... 28.01.2007, 15:01:00 
normanos Cytat(AxZx @ 28.01.2007, 12:22:24 ) m... 28.01.2007, 16:05:16
bim2 Przykro mi ale już to usunołe. Powie, tylko że nie... 28.01.2007, 13:30:44
AxZx ja odnosilem sie do konktetnego posta, do posta uz... 28.01.2007, 20:34:39
Prph Cytat(AxZx @ 28.01.2007, 20:34:39 ) w... 29.01.2007, 09:02:58 ![]() ![]() |
|
Aktualny czas: 4.12.2025 - 13:23 |