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
#21
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Witam!
Przepraszam, za zly adres - skocznczyl mi sie termin serwera. Nowy adres (tymczasem) http://vgm.pl/adrianpawlikpl/rapide/ Pracuje nad Rapide 0.3. Niestety mam teraz troche pracy na uczelni i w... pracy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mam nadzieje, ze w niedlugim czasie cos zaprezentuje. Wersja 0.3 dostepna bedzie takze przez SVN. Pozdrawiam, Adrian. |
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 25.09.2006 Ostrzeżenie: (0%)
|
Witam
Przeglądając kod wywnioskowałem, że obsługa formularzy odbywa się w sposób: 1) Kontroler, a właściwie jego akcja tworzy obiekt klasy Rapie_Form za pomocą operatora New. 2) Następnie zwraca za pomocą metody getView() obiekt danego widoku. 3) Konstruktor danej klasy widoku wywołuje metodę setTemplate(), która otwiera szablon. 4) W szablonie znajduje się formularz: 5) Po dane z formularza przechwyci router i kieruje do klasy Rapie_Form 6) Dostęp do tych danych ma akcja kontrolera z pkt. 1 za pomocą metod klasy Rapie_Form Tylko nie wiem czy moje myślenie jest prawidłowe Pozdrawiam Darektbg |
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 1 Dołączył: 16.04.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Świetnie, ale gdzie w Applecie dostęp do modelu?
|
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
@darektbg:
Tak mniej wiecej to wyglada. Pracuje nad dokumentacja i tutorialami dla Rapide. Niestaty, jak juz wczesnij na forum wspomnialem - mam teraz ciezki okres na uczelni i jedyne sen moge poswiecic na pisanie dokumentacji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) @envp: getModel(). W wersji 0.3 (dostepnej na svn: http://code.google.com/p/rapideframework/source) mozna uzywac kontrolerow jako apletow (nazwa zmieniona na pluginy widoku). Sluzy do tego helper plugin:
Funkcjonalnosc pluginu jest oczywiscie taka jak kontrolera, tylko oczywiscie forwardowanie nie dziala. Jak juz wspomnialem - pracuje nad dokumentacja i strona frameworka. Pozdrawiam, Adrian. |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 1 Dołączył: 16.04.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Zauważyłem pewną nieścisłość - aplet wywoływany z kontrolera nie podlega 'Plugionwaniu' co może eliminuje wyświetlanie np. sondy dla wybranej grupy userów...
|
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Owszem, pluginy nie sa obslugiwane. Ale IMHO to nie jest potrzebne. Wczesniej myslalem, że moze uzycie jezyka bedzie trudne poniewaz pliki jezykowe dla danej akcji ladowal plugin Language. Obecnie Obiekt Language jest na tyle elastyczny i samowystarczalny, ze nie musimy nic ladowac. Wystarczy odwolac sie do jezyka przez metode get obiektu Language:
Wynikiem bedzie pole Error_Name z tabeli jezyka z pliku Add z katalogu User. Pozdrawiam, Adrian. Witam, Rapide zaczyna rozwijac sie coraz bardziej (pomimo braku mojego wolnego czasu). Od jakiegos czasu pracuje nad wersja 0.3. Zmiany jakie nastapily w stosunku do wersji 0.1, to: 1. obiekt Language - teraz bardziej elastyczny. Dynamicznie laduje pliki jezykowe w trakcie odwolania sie do jezyka. Dzieki temu nie trzeba uzywac pluginu Language Front Kontrolera, a ponadto jezyk jest dostepny teraz dokladnie z dowolnego miejsca aplikacji. Wczesniej praktycznie tylko kontrolery oraz aplety moglu go uzywac. 2. aplety = pluginy widoku - przede wszystkim zmiana nazwy aplety na pluginy widoku. Ponadto pluginy sa nadal dostepne we frameworku, ale nie ma juz samej klasy pluginow. Pluginy byly bardzo podobne do kontrolerow, wiec uzywa sie kontrolerow w tym celu. Oczywiscie w przypadku pluginow nie mamy mozliwosci skorzystania z forwardowania, ale to nie jest nam potrzebne. Pluginy laduje helper "plugin". Pierwszy parametr to nazwa kontrolera, drugi - nazwa akcji, ktora nie jest obowiazkowa (zostanie uzyta akcja Index). 3. pelna obsluga pluginow w Front kontrolerze - takze dla preDispatchLoop, jak i dla postDispatchLoop. 4. niewielkie zmiany w obsludze MySQL - glownie zmiany nazw metod. 5. Walidatory - glowny walidator (Rapide_Validator) otrzymal metody do sprawdzania poprawnosci liczb, przez co walidator sluzacy do tego calu zostal usuniety. Zostala uruchomiona strona frameworka: Rapide.pl. Obecnie nic, oprocz adresu do zrodel, tam nie ma. Chcialem podziekowac Panu Jakubowi Kozickiemu za zasponsorowanie domeny. W czasem postaram sie zamiescic tam jakas dokumentacje i tutoriale. Pozdrawiam, Adrian. |
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
Czy ktoś kto korzysta z svn mógłby pobrać nanowszą wersja i udostępnić w zipie ?
|
|
|
|
Post
#28
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
A tak trudno w koncu zaczac korzystac z svn'a? svn + tortoise svn i jazda.
|
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Czy ktoś kto korzysta z svn mógłby pobrać nanowszą wersja i udostępnić w zipie ? W tar.gz: http://vgm.pl/rapide/snapshot/ Pozdrawiam, Adrian. |
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Wyslalem nowe.
Adrian. Wczoraj poprawilem kilka bladow zgloszonych przez Kube Kozickiego. Najczesciej byly to "literowki", no i same pluginy nie dzialaly zbyt dobrze. Poprawki oczywiscie dostepne na SVN. W zamieszczonym archiwum takze sa poprawkil Pozdrawiam, Adrian. |
|
|
|
Post
#32
|
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: Katowice 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
#33
|
|
|
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. |
|
|
|
Post
#34
|
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%)
|
Czy Rapide ma aspiracje (i plany) stać się poważnym frameworkiem czy zostanie jednoosobowym prywatnym projektem (jakich wiele)?
|
|
|
|
Post
#35
|
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 1 Dołączył: 16.04.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Hm z tego co wiem to tworzą go 2 osoby, dodatkowo kilka osób udziela wsparcia w postaci znajdowania bugów w kodzie. Poza tym ile frameworków stało się poważnymi w ciągu dwóch meisięcy ?
|
|
|
|
Post
#36
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Czy Rapide ma aspiracje (i plany) stać się poważnym frameworkiem czy zostanie jednoosobowym prywatnym projektem (jakich wiele)? Ma plany i aspiracje. Obecnie tworza go 2 osoby. Ja - Adrian Pawlik oraz Jakub Kozicki. Wszystkie osoby chetne do rozwoju frameworka sa bardzo mile widziane. W najblizszych planach jest przede wszystkim stworzenie dobrej dokumentacji, przykladow aplikacji, tutoriali oraz samej strony projektu. Z racji, ze ja i Kuba studiujemy, a stycznen dla stydentow jest jak wyrocznia, czasu mamy niewiele. Na www.rapide.pl beda widoczne wieksze zmiany w projekcie. Pozdrawiam, Adrian. |
|
|
|
Post
#37
|
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%)
|
Hm z tego co wiem to tworzą go 2 osoby, dodatkowo kilka osób udziela wsparcia w postaci znajdowania bugów w kodzie. Poza tym ile frameworków stało się poważnymi w ciągu dwóch meisięcy ? oj, od razu odebrałeś to jako atak a ja poważne pytanie zadałem. Ma plany i aspiracje. Obecnie tworza go 2 osoby. Ja - Adrian Pawlik oraz Jakub Kozicki. Wszystkie osoby chetne do rozwoju frameworka sa bardzo mile widziane. W najblizszych planach jest przede wszystkim stworzenie dobrej dokumentacji, przykladow aplikacji, tutoriali oraz samej strony projektu. Z racji, ze ja i Kuba studiujemy, a stycznen dla stydentow jest jak wyrocznia, czasu mamy niewiele. Na www.rapide.pl beda widoczne wieksze zmiany w projekcie. Pozdrawiam, Adrian. framewroków ci u nas dostatek ale tak na prawdę większość NIE nadaję się do produkcyjnego wykorzystania. Przy tych wybijających się zaraz powstaje jakaś społeczność ale albo lider musi sie mocno poświęcić albo oddaje więcej władzy w ręce ludu (svn, zespół dev). Tak jest niestety choćby w przypadku CodeIgniter - framework lekki, ciekawy, niestety JEDNOOSOBOWY, autor głuchy na prośby SVNa, włączenia w to większej ilości osób etc. Stąd moje pytanie - bo przejrzałem pobieżnie Rapide i wygląda obiecująco ale w chwili obecnej po prostu wygląda na prywatny projekcik jakich wiele (ostatnio inna osoba na forum pokazała podobny własny framework). Sugeruje: - ustalenie jakiegoś kierunku rozwoju - choćby wstępna roadmape, nie musi miec konkretnych dat, byle uwzględniała w/w kierunki rozwoju, komponenty z jakimis miesiącami/kwartałem? - - forum (!) - dokumentacje ((IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !) Osobiście jestem za słaby w teorii aby wam pomóc (starość nie radość), nie mniej jestem dobry w testowaniu i pisaniu różnych przedziwnych aplikacji na tych frameworkach więc mogę pomóc o ile zostaną spełnione w/w punkty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) pozdrawiam, wytrwalosci zycze. Ten post edytował normanos 11.01.2007, 10:16:05 |
|
|
|
Post
#38
|
|
|
Grupa: Zarejestrowani Postów: 800 Pomógł: 0 Dołączył: 26.11.2005 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Co do Forum i Dokumentacji ja mogę się tym zająć (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Z resztą pomóc też przy kodzie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Napisałem już z 5 Frame'ów i wszystkie poszły do kosza... Choć Rapide ma kilka wad, to wyjdzie na ludzi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
|
Post
#39
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Witam,
Od lutego na pewno wiele sie zmieni. Zakonczy sie sesja i ja i Kuba bedziemy mieli wiecej czasu. Rapide jest otwarty na nowe propozycje i kolejne osoby. Wcale nie trzeba byc wymiataczem z php, zeby udzielic sie w projekcie. Trzeba zrobic dobra strone projektu, tj. funkcjonalna, czytelna i profesjonalna oczywiscie. Jezeli ktos chcialby sie podjac, serdecznie zapraszam. W zamian oczywiscie nazwisko na liscie autorow/deweloperow. Pozdrawiam, Adrian. |
|
|
|
Post
#40
|
|
|
Grupa: Zarejestrowani Postów: 800 Pomógł: 0 Dołączył: 26.11.2005 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Prph: Gdzie się zgłaszać:D?
|
|
|
|
![]() ![]() |
|
Aktualny czas: 29.07.2026 - 12:10 |