Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

5 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> [Framework] Rapide Framework, Framework MVC dla aplikacji PHP5
Prph
post 7.09.2006, 01:59:05
Post #1





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Rapide Framework




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
  • Implementacja MVC
  • Obsługa pomocników i appletów w widoku dzięki czemu szybko zamieścimy w aplikacji stałe elementy (takie jak menu) w pełni funkcjonalne (funkcjonalność zbliżona do kontrolera).
  • Kontrola dostępu na podstawie ACL i grupy użytkowników. Konfigurację przeprowadza się w pliku konfiguracyjnym kontrolera i polega ona na zdefiniowaniu grup, które mają dostęp lub nie.
Biblioteki dostarczane przez Rapide
  • Rapide_Controller
    Klasa bazowa dla kontrolerów. Zawiera szereg aliasów skracających czas tworzenie kontrolera.
  • Rapide_View
    Klasa widoku implementująca szablony php. Rapide dostarcza prostą
    oraz rozszerzoną klasę widoku, pozwalającą na dekorowanie treści o elementy stałe (np. stopka, menu).
  • Rapide_User
    Klasa danych sesyjnych. Umożliwia autentyfikacje użytkownika oraz składowanie danych w sesji.
    Zastępuje standardową tablicę $_SESSION. Umożliwia stosowanie handlerów, dzięki czemu sesja może
    być przechowywana w bazie danych.
  • Rapide_ACL
    Access Control List - system kontroli dostępu. Pozwala na definiowanie grup mająych dostęp (lub nie) do poszczególnych kontenerów (akcji).
  • Rapide_Registry
    Rejestr pozwalający na przechowywanie obiektów i wspódzielenie ich w całej aplikacji.
  • Rapide_Database_MySQL
    Sterownik bazy danych MySQL dostarczający prosty i szybki w użyciu interfejs zarządzający danymi w bazie.
  • Rapide_Language
    Prosta klasa języka. Dane przechowywane są w tablicach php.
  • Rapide_Validator
    Szereg klas z rodziny Rapide_Validator dostarczaja prostych i skutecznych mechanizmów
    walidacyjncyh dla danych.
  • Rapide_Form
    Klasa umożliwiająca szybki dostęp do danych przesłanych za pomocą formularzy. Obecnie bardzo skromna.
Zdaję sobie sprawę, że Rapide wcale nie musi być nadzwyczajnym frameworkiem. Napisałem go dla siebie. Zamieszczam go w sieci, ponieważ może przydać się osobom, które uczą się budowania frameworków.

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

  1. <?php
  2. class Controller_Example extends Rapide_Controller
  3. {
  4. public function ExampleAction()
  5. {
  6. echo 'Example action from controller Example';
  7. }
  8. }
  9. ?>


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

  1. <?php
  2.  
  3. class Controller_User extends Rapide_Controller
  4. {
  5. public function PasswordAction()
  6. {
  7. $oForm = new Rapide_Form;
  8.  
  9. if(!$oForm->isSubmitted())
  10. return $this->getView('UserPassword');
  11.  
  12. $sPassword = $oForm->get('password');
  13. $sPassword2 = $oForm->get('password2');
  14.  
  15. if($sPassword != $sPassword2)
  16. {
  17. $aErrors[] = $this->getLanguage('Controller', 'User', 'Password', 'Error', 'Match');
  18.  
  19. $oView = $this->getView('UserPassword');
  20. $oView->errors = $aErrors;
  21.  
  22. return $oView;
  23. }
  24.  
  25. $iUser = $this->getUser()->id;
  26.  
  27. $oUser = $this->getModel('User');
  28. $oUser->load($iUser);
  29.  
  30. $oUser->password($sPassword);
  31. $oUser->save();
  32.  
  33. $this->redirect();
  34. }
  35. }
  36.  
  37. ?>


Widok i szablon widoku dla tej akcji

  1. <?php
  2. class View_UserPassword extends Rapide_View_Html_Extended
  3. {
  4. public function __construct()
  5. {
  6. $this->setTemplate('UserPassword');
  7. }
  8. }
  9. ?>


  1. <?php $this->title = $this->lang('Controller', 'User', 'Password', 'Title'); ?>
  2.  
  3. <h1><?= $this->lang('Controller', 'User', 'Password', 'Header') ?></h1>
  4.  
  5. <?php require_once('formErrors.inc.php'); ?>
  6.  
  7. <form action="" method="post">
  8. <p>
  9. <?= $this->lang('Controller', 'User', 'Password', 'Password') ?>: <br/>
  10. <input type="password" name="password">
  11. </p>
  12.  
  13. <p>
  14. <?= $this->lang('Controller', 'User', 'Password', 'Password2') ?>: <br/>
  15. <input type="password" name="password2">
  16. </p>
  17.  
  18. <p>
  19. <input type="submit" name="submit" value="<?= $this->lang('Form', 'Submit') ?>">
  20. </p>
  21. </form>


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
Go to the top of the page
+Quote Post
Quickest
post 7.09.2006, 14:15:48
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.09.2006

Ostrzeżenie: (0%)
-----


Świetny framework - podoba mi się... bardzo ciekawe rozwiązania w nim zastosowałeś, gratuluję pomysłów i przemyśleń! smile.gif

Przeglądam go już troszkę i kilka pytań mi się narzuciło, mianowicie...

Jak działa u Ciebie dokładnie:
- Access Control List - system kontroli dostępu - mógłbyś podać jakiś przykład w kodzie jak to działa i jak to definujesz w którym miejscu gotowej aplikacji?

- interesuje mnie jeszcze działanie łańcucha akcji bo też widzę, że jest ciekawie rozwiązane... czy dzielisz akcje na akcje logiczne i akcje widoki? Czy po prostu gdy ostatnia akcja się zakończy, to przekazuje ona dane do uaktywnionego przez nią widoku. Jak to u Ciebie dokładnie wygląda z akcją ostatnią wyświetlającą wynik działania akcji wcześniejszych?
Może też jakiś przykładowy kod.

- jaka jest dokładna różnica między metodą forward a redirect klasy Rapide_Controller, czy nie lepiej zastosować tylko samą metodę forward? Możesz mi wytłumaczyć, hmm... w jakiś prosy sposób cel tego, bo do końca nie rozumiem tej kwestii.

Ten post edytował Quickest 7.09.2006, 14:17:42
Go to the top of the page
+Quote Post
hwao
post 7.09.2006, 15:11:07
Post #3


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Wyglada praktycznie tak samo jak Zend Framework. Kod jest ładnie napisany, no ale jest bardzo wzorowany na wspomnianym framework'u.

@
Quickest: Pewnie tak samo jak w ZF, forward zmienia kacje a redirect zmienia akcje z kontrolerem.
Go to the top of the page
+Quote Post
Turgon
post 7.09.2006, 15:26:20
Post #4





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Rzut na sam widok katalogów wygląda jak Zend.
Powiem szczerze, że też wzoruje się na zorganizowaniu Zenda, jednakże ja piszę trochę inaczej. Dopisuje obiekty których wyżej wspomniany framework nie posiada. Mam też inny styl. Upraszczam go maksymalnie.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Prph
post 7.09.2006, 15:49:05
Post #5





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(Quickest @ 7.09.2006, 13:15:48 ) *
Jak działa u Ciebie dokładnie:
- Access Control List - system kontroli dostępu - mógłbyś podać jakiś przykład w kodzie jak to działa i jak to definujesz w którym miejscu gotowej aplikacji?


System kontroli prezentowany jest przez klase ACL. Klasa acl przyjmuje definicje dostepu, ktore reprezentowane sa przez klase ACL_Access. Wszystko przeprowadza plugin: Rapide_Plugin_ACL. Jego dzialanie jest nastepujace:
1. Pobierz informacje z konfiguracji kontrolera jakie grupy maja miec dostep.
2. Dodaj definicje Access do ACLa
3. Pobierz informacje, ktore sa zablokowane.
4. Dodaj definicje do ACLa.
5. ACL sprawdza czy obecny uzytkownik ma prawa do danej akcji, jezeli nie - zwraca akcje Error403.


Przejrzyj kod ow plugina - wszystko jest ladnie zaprezentowane. Pamietaj, ze konfiguracja kontrolera trzymana jest w katalogu Configs jako plik z tablica php.

Cytat(Quickest @ 7.09.2006, 13:15:48 ) *
- interesuje mnie jeszcze działanie łańcucha akcji bo też widzę, że jest ciekawie rozwiązane... czy dzielisz akcje na akcje logiczne i akcje widoki? Czy po prostu gdy ostatnia akcja się zakończy, to przekazuje ona dane do uaktywnionego przez nią widoku. Jak to u Ciebie dokładnie wygląda z akcją ostatnią wyświetlającą wynik działania akcji wcześniejszych?
Może też jakiś przykładowy kod.


Nie mam podzialu na akcje. Jezeli ktos wyswietli widok a nastepnie ustawia kolejna akcje - na ekranie dostanie wynik 2 akcji. O tym nalezy pamietac. Jezeli korzystamy z widoku, to w chwili kiedy chcemy go wyswietli, zwyczajnie zwracamy go. Zobacz przykladowe kody - tam zwracam widok, a Rapide go wyswietla.

Cytat(Quickest @ 7.09.2006, 13:15:48 ) *
- jaka jest dokładna różnica między metodą forward a redirect klasy Rapide_Controller, czy nie lepiej zastosować tylko samą metodę forward? Możesz mi wytłumaczyć, hmm... w jakiś prosy sposób cel tego, bo do końca nie rozumiem tej kwestii.


Forward: Przekaze tzw. Token (blasa zawierajaca kontroler, akcje i parametry akcji). Rapide uruchomi nastepna akcje. Nie nastapi przeladowanie strony.

Redirect: Nie przekazuje tokena - wysyla naglowek Location do przegladarki. Przegladarka wtedy wlaczy inna strone.

Kiedy stosowac jedno, kiedy drugie? W sumie i jedno i drugie mozna stosowac zawsze. Redirect powodue przeladowanie strony, forward nie. Ale po redirect na pasku przegladarki mamy adres obecnej akcji (tej na ktora przekierowalismy). Po forward na pasku znajduje sie ten sam adres - starej akcji.

@hwao, @Turgon: Tak, jak wspomnailem wzorowalem go na Zend Framework. Oto powody:

1. Struktura katalogow - swietne rozwiazanie, latwy __autoload,
2. Male, elastyczne klasy
3. Te klasy wspoldzialaja ze soba naprawde luzno.

Wcale nie oznacza, ze Rapide jest skopiowanym kodem z Zenda. Wiele kodu sie zgadza, a jednak nie wzorowalem sie na Zend. Na pewno zaczerpnalem pomysly z: Front kontroler, dispatcherem, pluginami i konfigiem. No pomysl na uzycie helperow takze zobaczylem w Zend. W zasadzie napisalem helpery, a pozneij zobaczylem ze w Zend jest to zrobione niemal idenycznie.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
splatch
post 7.09.2006, 18:13:49
Post #6





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przede wszystkim - brak jakiejkolwiek dokumentacji w kodzie strasznie utrudnia jego przeglądanie.. pomijam fakt, że póki co jeszcze brakuje przykładowej aplikacji

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
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.

Kontekst. Jeden kontekst. W Mojavi 3.0 kontekst był singletonem. W 4.0 nie było go wogóle, w jego miejsce był użyty ServiceLocator.

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
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ę.

To niewątpliwa zaleta. Widziałem, że używasz interfejsów w miejsce klas abstrakcyjnych. Troche mnie dziwi i zaskakuje konwencja nazewnicza i aż takie wyróżnienie interfejsów. Z mojego punktu widzenia nie ma większego sensu aż tak rozbijać nazw, bo tworzą się przez to strasznie długie łańcuchy. Czy nie lepiej użyć
Rapide_Router zamiast Rapide_Router_Interface?

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
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.

Widok widokiem, implementacji MVC jest wiele. smile.gif Nie wiem czy zauważyłeś, ale w Mojavi 4 nie było konieczności dziedziczenia ze SmartyView/HtmlView, ponieważ były użyte Renderery. Dzięki nim możesz w bardzo prosty sposób tworzyć różne fragmenty stron w wielu technologiach. U Ciebie widzę jeszcze zaszłość po Mojavi 3, gdzie dziedziczenie jest wymuszone. Przydatną rzeczą jest również rozbicie widoków w zależności od content-type. Jest to bardzo fajna sprawa, ponieważ w połączeniu z routes, które powinny dawać możliwość zmiany typu outputu daje to nieprawdopodobne wręcz możliwości.
Co do Apletów - rozważyć należy czy to jest element widoku? Myślę, że Aplet jest mimo wszystko częścią, która jest bardziej zbliżona kontrolerowi. Dlaczego? W chwili obecnej decyzję o tym, co ma się stać z Apletem pozostawiasz widokowi. To niedobrze, zgodnie z filozofią OOP obiekt powinien wiedzieć sam co ma ze sobą zrobić. Rozważ to czy nie użyć "layoutu" w połączeniu z rejestrowaniem Apletów podatnych na zdażenia. W Javie jest taka technologia, która zwie się Portlety. Jest to rozszeżenie a właściwie zawężenie Servletów. Na portlecie można wykonać kilka akcji - hide/show, valid etc.

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
Ponadto wiele czynności zostało zautomatyzowanych, dzięki czemu nie musimy wczytywac konfiguracji do akcji, czy też martwić się o kontrolę dostępu.

Z tym, że póki co przykładów brak winksmiley.jpg

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Rapide_User
Klasa danych sesyjnych. Umożliwia autentyfikacje użytkownika oraz składowanie danych w sesji.
Zastępuje standardową tablicę $_SESSION. Umożliwia stosowanie handlerów, dzięki czemu sesja może
być przechowywana w bazie danych.

To nie jest poprawne podejście. User w Mojavi to nie jest handler sesji. To są dane obecnego użytkownika, jego sesja. To, jakiego handlera użyje programista nie powinno być zależne od frameworka. Fakt, framework może oferować taką funkcjonalność, ale nie w tak ścisłym związku z sesją.

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Rapide_ACL
Access Control List - system kontroli dostępu. Pozwala na definiowanie grup mająych dostęp (lub nie) do poszczególnych kontenerów (akcji).

Przykład?

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Rapide_Database_MySQL
Sterownik bazy danych MySQL dostarczający prosty i szybki w użyciu interfejs zarządzający danymi w bazie.

Myślę, że w chwili obecnej tworzenie kolejnego poziomu abstrakcji do bazy danych to pomyłka. W chwili, gdy PDO jest i na pewno zostanie powinieneś bardziej się skupić na jego rozszeżaniu. Ponadto PDO jest znacznie szybsze niż natywne funkcje php.

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Rapide_Language
Prosta klasa języka. Dane przechowywane są w tablicach php.

A może obsługa gettexta?

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Rapide_Validator
Szereg klas z rodziny Rapide_Validator dostarczaja prostych i skutecznych mechanizmów
walidacyjncyh dla danych.

Przykład? Konfiguracja?

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Rapide_Form
Klasa umożliwiająca szybki dostęp do danych przesłanych za pomocą formularzy. Obecnie bardzo skromna.
[/list]

Przykład? Inna sprawa to to, że nie ma sensu wiązać się aż tak bardzo z tą klasą. Dlaczego? Lepsze jest dostarczenie mechanizmów, które ułatwiają prezentacje błędów niż wiązanie widoku z formularzem.
Po co mi klasa, która tylko i wyłącznie tworzy mi input? Po to by określić validator? Wolę to wyłączyć do oddzielnego pliku i tam to trzymać, tak bym mógł w jednym miejscu zmieniać zasady sprawdzania np nazwiska.

Mam nadzieje, że te uwagi będą dla Ciebie przydatne i dzięki nim Twój framework stanie się lepszy.

Pozdrawiam,


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
Quickest
post 7.09.2006, 18:18:32
Post #7





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?questionmark.gif Przykład?

Przypuśmy plik konfiguracyjny kontrollera z przykładu:

np. /application/Config/Controller/example.php

  1. <?php
  2. $aConfig = array(array('example' => array('Security' => array('Groups' =>
  3. array('Deny' => array('banned_user', 'moderators'), 'Allow' => array('admins'))))));
  4. ?>


Tak wygląda przykładowy plik konfiguracyjny?questionmark.gif yyy...? 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_Userquestionmark.gif?
Czy one nie powinny być wywoływane w trakcie sprawdzania danych user'a o zalogowaniu?questionmark.gif
Albo może inne pytanie... jeżeli autoryzacja się nie powiedzie to przekierowujemy usera na akcję z formularzem logowania? worriedsmiley.gif

Ehh... wszystko już mi się to miesza jak widać 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 sad.gif

Ten post edytował Quickest 7.09.2006, 18:21:55
Go to the top of the page
+Quote Post
Prph
post 7.09.2006, 19:06:38
Post #8





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:

  1. <?php
  2.  
  3. $aConfig['Actions']['Password'] = array
  4. (
  5. 'Security' => array
  6. (
  7. 'Groups' = array
  8. (
  9. 'Allow' => array('admin', 'moderator'),
  10. 'Deny' => array('nieproszony_gosc')
  11. )
  12. )
  13. );
  14.  
  15. ?>


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ę:


  1. <?php
  2. $aConfig['Actions']['Password'] = array
  3. (
  4. 'Security' => true
  5. );
  6. ?>


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:

  1. <?php
  2.  
  3. class Controller_Auth extends Rapide_Controller
  4. {
  5. public function LoginAction()
  6. {
  7. $oForm = new Rapide_Form;
  8.  
  9. /*
  10. Check the form. If it has not been submitted,
  11. display the form.
  12. */
  13.  
  14. if(!$oForm->isSubmitted())
  15. {
  16. return $this->getView('AuthLogin');
  17. }
  18.  
  19. $sLogin = $oForm->get('login');
  20. $sPassword = $oForm->get('password');
  21.  
  22. /*
  23.  Check the data and display the form on failure.
  24. */
  25.  
  26. if(empty($sLogin) || empty($sPassword))
  27. {
  28. $aErrors[] = $this->getLanguage()->get('Controller', 'Auth', 'Login', 'Error', 'Empty');
  29.  
  30. $oView = $this->getView('AuthLogin');
  31. $oView->errors = $aErrors;
  32.  
  33. return $oView;
  34. }
  35.  
  36. /*
  37.  Check the login using DAO.
  38. */
  39.  
  40. $oUserDAO = $this->getModel('UserDAO');
  41.  
  42. $iUser = $oUserDAO->getIdByLogin($sLogin, $sPassword);
  43.  
  44. if(!$iUser)
  45. {
  46. $aErrors[] = $this->getLanguage()->get('Controller', 'Auth', 'Login', 'Error', 'Data');
  47.  
  48. $oView = $this->getView('AuthLogin');
  49. $oView->errors = $aErrors;
  50.  
  51. return $oView;
  52. }
  53.  
  54. /*
  55.  Everything is correct. Set the user and forward
  56.  to default action.
  57. */
  58.  
  59. $oUserModel = $this->getModel('User');
  60. $oUserModel->load($iUser);
  61.  
  62. $aGroups = $oUserModel->groups();
  63.  
  64. $oUser = $this->getUser();
  65. $oUser->setAuthenticated();
  66. $oUser->setGroups($aGroups);
  67.  
  68. // Set additional data
  69.  
  70. $oUser->id = $iUser;
  71. $oUser->firstName = $oUserModel->firstName();
  72. $oUser->lastName = $oUserModel->lastName();
  73.  
  74. $this->forward();
  75. }
  76.  
  77. public function logoutAction()
  78. {
  79. $this->getUser()->destroy();
  80. $this->forward();
  81. }
  82. }
  83.  
  84. ?>


Ostatnie linie akcji Login przedstawiaja sposob autentykacji użytkownika oraz ustawienie dodatkowych informaacji (np imie i nazwisko).
Go to the top of the page
+Quote Post
Quickest
post 7.09.2006, 21:41:51
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.09.2006

Ostrzeżenie: (0%)
-----


Teraz już wszystko jasne jak słońce, gdy zobaczyłem kod smile.gif
Zaczyna mi się coraz bardziej podobać ten framework :roll2:

Jeszcze dwa pytania jakie mi się nasuwają to:

Cytat(Prph @ 7.09.2006, 02:59:05 ) *
[*]Obsługa pomocników i appletów w widoku dzięki czemu szybko zamieścimy w aplikacji stałe elementy (takie jak menu) w pełni funkcjonalne (funkcjonalność zbliżona do kontrolera).


no właśnie... a interesują mnie jak zamieścić stałe elementy typu np. pytania ankiety itp. tzn. jak dokładnie działają Applety, jak są obsługiwane?questionmark.gif worriedsmiley.gif

I kolejne pytanie z serii "sto pytań do twórcy"... w którym miejscu wykorzystujesz Rapid_Log w frameworku i też może mały przykład?
Go to the top of the page
+Quote Post
Prph
post 8.09.2006, 09:07:52
Post #10





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


W szablonie mamy możliwość używania tzw. pomocników. Pomocnicy, jak wskazuje nazwa, pomagają nam w generowaniu szablonu. Pomocnikiem może być np. metoda generująca ładną datę, albo przycisk.

W Rapdie pomocnicy są obiektami. Ich klasy znajdują się w katalogu Rapide/View/Helper/. Dostep do pomocnika jest następujący:

  1. <?php
  2. // plik z szablonem:
  3.  
  4. echo $this->url('Kontroler', 'JakasAkcja', array('paremetr' => 'wartosc'));
  5. ?>


Url jest pomocnikiem prosto z Rapide. Pierwszy parametr, to kontroler, drugi akcja, a trzeci to tablica asocjacyjna parametrow. Wynik bedzie nastepujacy:



W ten sposob mamy pewnosc ze zawsze wygenerujemy poprawny adres url, zgodny z naszym Routerem (Router jest obiektem, ktory wyciaga z adresu nazwe kontroler, akjce i parametry - czyli parsuje przejazany adres url).

Jak tworzyc wlasne klasy pomocnikow?

1. Utworz plik o nazwie Pomocnik.class.php w katalogu Rapide/Rapide/View/Helper lub application/View/Helper/.
2. Nazwa klasy pomocnika musi byc w formacie View_Helper_Pomocnik.
3. klasa musi posiadac metode execute, do ktorej przejazane zostana argumenty.

Przyklad pomocnika

  1. <?php
  2.  
  3. class Rapide_View_Helper_Url extends Rapide_View_Helper
  4. {
  5. public function execute($sController = null, $sAction = null, array $aParameters = array())
  6. {
  7. return Rapide_Controller_Front::getInstance()
  8.  ->getRouter()
  9.  ->url($sController, $sAction, $aParameters);
  10. }
  11. }
  12.  
  13. ?>


A i dodam, ze helper zapisany w katalogu Rapide, nie aplikacji musi miec nazwe klasy w formacie Rapide_View_Helper.

Aplety

Do osadzania stalych elementow, jak menu, sonda etc uzywa sie apletow. Aplet ma funkcjinalnosc zblizona do kontrolera - ma dostep do widoku, modelu, konfiguracji, Usera (sesji) i jezyka.

Aplety zapisujemy podobnie jak helpery, ale tylko w katalogu application/View/Applet/
Plik musi nazywac sie MojAplet.class.php. Nazwa klasy: View_Applet_MojAplet.

Przykladowy aplet:

  1. <?php
  2.  
  3. class View_Applet_User extends Rapide_View_Applet
  4. {
  5. public function execute()
  6. {
  7. if(!$this->getUser()->isAuthenticated())
  8. return;
  9.  
  10. $oView = $this->getView('Applet');
  11. $oView->setTemplate('AppletUser');
  12.  
  13. return $oView->fetch();
  14. }
  15. }
  16.  
  17. ?>


NAlezy pamietac, ze Aplet nie wyswietla szablonu - zwraca go metoda Fetch.
Aplet ma podobne metody jak kontroler. Aplety dzidziczymy z Rapide_View_Applet i polecam zapoznac sie z ta klasa - jest prosta, wiadac metody. Konfiguracje Apletu zapisujemy tak jak kontrolera, ale w katalogu Config/Applet/

Dlaczego stosuje tutaj setTemplate? Normalnie powinienem zrovic to w widoku, bo co interesuje Kontrolera jaki jest szablon. nie on wyswietla dane, tylko widok i to widok powinien wiedziec. Ale w przypadku apletow mozna tak zrobic, bo:

1. Aplety i tak najczesciej beda HTML.
2. Po co robic 10 widokow, mozna zrobic jeden Applet i ustawiac w nim szablon.
3. Aplet jest na tyle mala czescia aplikacji, ze mozna w nim ustawiac szablon - dla prostosty.

Dodam, ze aplet ma jedna metode - Execute i to ona zosanie wywolana.

Z szablonu aplet wywoluje sie nastepujaco:
  1. <?php
  2. // korzystamy z pomocnika Applet:
  3.  
  4. echo $this->applet('MenuBoczne');
  5. ?>



Pozdrawiam, Adrian.

Ten post edytował Prph 8.09.2006, 09:08:36
Go to the top of the page
+Quote Post
NuLL
post 9.09.2006, 02:03:49
Post #11





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


A tak na raty skaczac po plikach snitch.gif
form.class.php
  1. <?php
  2. private function _trim(array & $aArray)
  3. {
  4. foreach($aArray as $sKey => $mValue)
  5. {
  6. if(is_string($mValue))
  7. {
  8. $aArray[$sKey] = trim($mValue);
  9. }
  10. }
  11. }
  12. ?>

array_map" title="Zobacz w manualu php" target="_manual - piszac frame'a przydaje sie b.dobra znajomosc samego php

File.class.php - kontrolujesz czy $_FILES zawiera dany klucz - czyli z klasy formularza mam zwracac wartosc o niestniejacym indeksie questionmark.gif Rozumiem pikne E_WARNING questionmark.gif

class Rapide_Util_Syntaxer_Php - z php wywalili f-cje highlight_ questionmark.gif Ja nic nie wiem rolleyes.gif

Raz z kodzie stosujesz array_key_exists raz isset - zdecyduj sie winksmiley.jpg

Ten post edytował NuLL 9.09.2006, 02:04:26


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Prph
post 9.09.2006, 07:58:36
Post #12





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(NuLL @ 9.09.2006, 01:03:49 ) *
array_map" title="Zobacz w manualu php" target="_manual - piszac frame'a przydaje sie b.dobra znajomosc samego php


Racja, jest array_map. Zapomnialem o nim worriedsmiley.gif

Cytat(NuLL @ 9.09.2006, 01:03:49 ) *
File.class.php - kontrolujesz czy $_FILES zawiera dany klucz - czyli z klasy formularza mam zwracac wartosc o niestniejacym indeksie questionmark.gif Rozumiem pikne E_WARNING questionmark.gif

Jezelu juz to NOTICE, ale nie bardzo Cie rozumiem. piknie przy poraniu, czy przy sprawdzaniu? Przy tym drugim na pewno nie piknie.

Cytat(NuLL @ 9.09.2006, 01:03:49 ) *
class Rapide_Util_Syntaxer_Php - z php wywalili f-cje highlight_ questionmark.gif Ja nic nie wiem rolleyes.gif

A tu mnie zaskoczyles (mile). O tym nie wiedzialem. Ciekawa funkcja, chociaz piszac cos wlasnego mam kontrole nad kolorami.

Cytat(NuLL @ 9.09.2006, 01:03:49 ) *
Raz z kodzie stosujesz array_key_exists raz isset - zdecyduj sie winksmiley.jpg


Tak wiem. Jest jeszcze kilka rzeczy w ktorch nie jestem konsekwentny, ale to oczywiscie jest do poprawy.

Dziekuje za uwagi NuLL.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
hwao
post 9.09.2006, 08:17:10
Post #13


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Rapide_Util_Syntaxer_Php

Zaskoczyłeś mnie... rozumie sens pisania takiej funkcji do SQL (ostanio taka pisalem) ale dla php?

php udostepnia 2 mechanizmy, jeden to tokenizer a drugi to wyzej wspomniany highlight_string/file w 1 mozesz dodolnie pokolorowac, w 2 masz tez sporo pole manewru, gdyz mozesz ustawic sobie jaki chcesz kolor (tylko tam masz juz pare sekcji).

Cytat
Raz z kodzie stosujesz array_key_exists raz isset - zdecyduj sie winksmiley.jpg

isSet" title="Zobacz w manualu php" target="_manual() jest sporo szybszy (pare razu) od array_key_exists" title="Zobacz w manualu php" target="_manual()
Go to the top of the page
+Quote Post
seaquest
post 9.09.2006, 08:21:06
Post #14





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Cytat(Prph)
A tu mnie zaskoczyles (mile). O tym nie wiedzialem. Ciekawa funkcja, chociaz piszac cos wlasnego mam kontrole nad kolorami.


A w highlight nie masz? Poza tym Twoja klasa na pewno robi to dużo wolniej niż funkcja.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Prph
post 9.09.2006, 08:58:38
Post #15





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


@hwao: dzieki za informacje. Mialem pozniej zabrac sie za przetesotwanie obu funkcji.

@seaquest: w wolnej chwili zapoznam sie highlightem. Jak wspomnialem po prostu nie wieedzialem, ze w php jest taka funkcja. Chociaz cos kojarze. No nie wazne... zapomnialem o niej. Dziekuje za informacje.

Adrian.
Go to the top of the page
+Quote Post
thornag
post 11.09.2006, 12:37:02
Post #16





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


Ja am takie pytanie:

Tutaj odwolujemy sie do metody klasy rapide jak do metody statycznej
  1. <?php
  2. $oController = Rapide::getController($oToken->getController());
  3. ?>


A tak wyglada deklaracja tej metody:
  1. <?php
  2. public function getController($sController)
  3. {
  4. if(!self::controllerExists($sController))
  5. {
  6. $sError = sprintf('Controller %s does not exist', $sController);
  7. throw new Rapide_Exception($sError);
  8. }
  9.  
  10. /**
  11.  * Attention: Controller's file loaded in self::controllerExists().
  12.  */
  13.  
  14. $sControllerClass = 'Controller_' . $sController;
  15. return new $sControllerClass;
  16. }
  17. ?>


Metoda nie jest zadeklaroweana jakos attyczna, a jednak odwolujesz sie do niej jak do statycznej. Co pominalem ?

I nastepne:

Tutaj jest kawalek routera:
  1. <?php
  2. class Rapide_Router implements Rapide_Router_Interface
  3. {
  4. public function execute()
  5. {
  6. if(isset($_GET[_ROUTER_CONTROLLER_ACCESSOR]))
  7. $sController = $_GET[_ROUTER_CONTROLLER_ACCESSOR];
  8. else
  9. $sController = _ROUTER_CONTROLLER_DEFAULT;
  10.  
  11. if(isset($_GET[_ROUTER_ACTION_ACCESSOR]))
  12. $sAction = $_GET[_ROUTER_ACTION_ACCESSOR];
  13. else
  14. $sAction = 'Index';
  15.  
  16. $oToken = new Rapide_Dispatcher_Token(ucfirst($sController), ucfirst($sAction), $_GET);
  17.  
  18. if(!Rapide_Controller_Front::getInstance()
  19.  ->getDispatcher()
  20.  ->isDispatchable($oToken))
  21. {
  22. $oToken = new Rapide_Dispatcher_Token('Error', 'Error404');
  23. }
  24.  
  25. return $oToken;
  26. }
  27. ?>


Jesli nie jest podana akcja w URLu albo akcja jest bledna ustawiana jest akcja index.

Tutaj mamy zragment controllera

  1. <?php
  2. public function IndexAction()
  3. {
  4. $this->forward();
  5. }
  6. ?>


I deklaracja forward

  1. <?php
  2. public function forward($sController = null, $sAction = null, array $aParameters = array())
  3. {
  4. if(!isset($sController))
  5. {
  6. $sController = _ROUTER_CONTROLLER_DEFAULT;
  7. $sAction = 'Index';
  8. }
  9.  
  10. $this->_oNextToken = new Rapide_Dispatcher_Token($sController, $sAction, $aParameters);
  11. }
  12. ?>


Z tego co widze, to jesli forward jest pusty to poleci defaultowy kontrolelr z akcja index. Akcja index robi pusty forward ? powinno sie zapletlic, co znow pominalem smile.gif ?

Ten post edytował thornag 11.09.2006, 12:51:19


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
Prph
post 11.09.2006, 22:00:44
Post #17





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Ad1. Przeoczenie. Powinno byc static. Dzieki.

Ad2. Nie zapetli sie. Wybierze kontroler Index, akcje index. Jezeli akcja nie zostala okreslona wybierze domyslnie index. Ta jest definiowana domyslnie w bazowej klasie kontrolera i forwarduje na domyslny kontroler. Wymagane jest aby kontroler index mial zdefionowana wlasna metode indexAction.

Adrian.
Go to the top of the page
+Quote Post
Apo
post 17.09.2006, 16:44:17
Post #18





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


Prph a mógłbyś wyjaśnić bardziej działanie klasy Rapide_View_Html_Extended, kiedy jest wywoływana, zasada jej działania itp smile.gif

Pozdrawiam
Go to the top of the page
+Quote Post
Prph
post 17.09.2006, 18:50:03
Post #19





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Widok rozszerzony sluzy do dekorowania tresci. Wezmy pod uwage taki przyklad:

Mamy stopke, naglowek i menu boczne. Nasza tresc wyswietlana jest w srodku (taki standardowy przyklad). Wiadomo, ze widoki uzywaja szablonow (w Rapide sa to szablony php). Zalozny, ze mamy akcje Pokaz nowosci oraz dodaj nowosc. Nie byloby wygodnie, gdyby kazdy ten szablon byl postaci:

  1. <div id="top">
  2. <h1>Naglowek strony</h1>
  3. </div>
  4.  
  5. <div id="zawartosc">
  6.  
  7. <!-- Tu nasz szablon dla akcji -->
  8.  
  9. </div>
  10.  
  11. </body>
  12. </html>


W tym celu uzyjemy widoku rozszerzonego. Utworzymy szablon glowny o nazwie Main.php. Jego zawartosc bedzie taka jak przedstawiona wyzej. W miejscu, gdzie jest zawartosc wyswietlamy zmienna $this->content.

W rezultacie nasz widok zostanie udekoroweany o szablon Main.php. Nazwa tego szablonu zdefiniowana jest jako stala w samej klasie widoku.

Przyklad naszego widoku:

  1. <?php
  2. class View_MojWidok extends Rapide_View_Html_Extended
  3. {
  4. public function __construct()
  5. {
  6. $this->setTemplate('SzablonDlaAkcji');
  7. }
  8. }
  9. ?>


Ponadto szablon dekorujacy mozemy okreslic metoda setMainTemplate($nazwa).

Szablony akcji moga potrzebowac zaladowac css lub javascript. Sluza do tego helpery css i js:

  1. <?php
  2. // szablon akcji
  3.  
  4. $this->css('CssDlaTejAkcji.css');
  5. $this->js('JSDlaTejAkcji.js');
  6. ?>


Wybrane pliki musza znajdowac sie w katalogu szablonu odpowiednio w css/ i js/

Dodam jeszcze, ze widok rozszerzony nie jesy wykonywany w jakis inny sposob. Po prostu programista swoj widok nie dziedziczy po Rapide_View_Html a po Rapide_View_Html_Extended.

Pozdrawiam, Adrian.

Ten post edytował Prph 17.09.2006, 18:51:21
Go to the top of the page
+Quote Post
dzobert
post 5.11.2006, 17:42:18
Post #20





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 30.06.2006
Skąd: okolice Warszawy

Ostrzeżenie: (0%)
-----


Czy jest jeszcze jakieś miejsce skąd można pobrać Rapide framework. Pytam ponieważ link podany w sygnaturze prph jest 'nieaktualny'
Go to the top of the page
+Quote Post
Prph
post 5.11.2006, 19:56:05
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 winksmiley.jpg Mam nadzieje, ze w niedlugim czasie cos zaprezentuje. Wersja 0.3 dostepna bedzie takze przez SVN.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
darektbg
post 10.11.2006, 16:08:16
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:
  1. <form action="" method="post">
  2.  
  3. </form>

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


--------------------
skocz.org - system skracania linków
Go to the top of the page
+Quote Post
envp
post 11.11.2006, 16:48:15
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?
Go to the top of the page
+Quote Post
Prph
post 12.11.2006, 10:52:14
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 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:

  1. <?php
  2. $this->plugin('Menu', 'Admin'); //zalaczy wynik dzialania akcji Admin kontrolera Menu.
  3. ?>


Funkcjonalnosc pluginu jest oczywiscie taka jak kontrolera, tylko oczywiscie forwardowanie nie dziala.

Jak juz wspomnialem - pracuje nad dokumentacja i strona frameworka.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
envp
post 12.11.2006, 15:35:27
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...
Go to the top of the page
+Quote Post
Prph
post 30.11.2006, 10:35:45
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:

  1. <?php
  2. $sError = $this->getLanguage()->get('User', 'Add', 'Error_Name');
  3. ?>


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.
Go to the top of the page
+Quote Post
Jarod
post 3.12.2006, 12:43:46
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 ?


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
dr_bonzo
post 3.12.2006, 13:41:20
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.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Prph
post 3.12.2006, 20:08:14
Post #29





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(J4r0d @ 3.12.2006, 12:43:46 ) *
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.
Go to the top of the page
+Quote Post
Jarod
post 3.12.2006, 20:42:08
Post #30





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(Prph @ 3.12.2006, 20:08:14 ) *


Archiwum jest uszkodzone :/


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
Prph
post 4.12.2006, 12:35:36
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.
Go to the top of the page
+Quote Post
AxZx
post 3.01.2007, 16:21:54
Post #32





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?
  1. <?= $this->lang('Controller', 'User', 'Password', 'Password') ?>: <br/>


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.
  1. <?= $this->lang('Password') ?>: <br/>

moze da sie tak?

Ten post edytował AxZx 3.01.2007, 16:30:37


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Prph
post 4.01.2007, 11:26:38
Post #33





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 3.01.2007, 16:21:54 ) *
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).

Cytat(AxZx @ 3.01.2007, 16:21:54 ) *
i jeszcze takie pytanie
czy dodawanie jakis tekstow w szablonie musi byc takie dlugie?
  1. <?= $this->lang('Controller', 'User', 'Password', 'Password') ?>: <br/>


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:

  1. <?= $this->lang('Nowosci', 'Autor') ?>
  2. <?= $this->lang('Uzytkownicy', 'JakisKlucz');


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.
Go to the top of the page
+Quote Post
nrm
post 10.01.2007, 19:48:09
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)?


--------------------
Go to the top of the page
+Quote Post
envp
post 10.01.2007, 21:32:50
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 ?
Go to the top of the page
+Quote Post
Prph
post 10.01.2007, 22:00:30
Post #36





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(normanos @ 10.01.2007, 19:48:09 ) *
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.
Go to the top of the page
+Quote Post
nrm
post 11.01.2007, 10:14:34
Post #37





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(envp @ 10.01.2007, 21:32:50 ) *
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.

Cytat(Prph @ 10.01.2007, 22:00:30 ) *
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?
- SVN (widze, że jest, nawet pobralem najnowsza wersje)
- forum (!)
- dokumentacje (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 winksmiley.jpg

pozdrawiam, wytrwalosci zycze.

Ten post edytował normanos 11.01.2007, 10:16:05


--------------------
Go to the top of the page
+Quote Post
Turgon
post 11.01.2007, 10:25:38
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ąć biggrin.gif Z resztą pomóc też przy kodzie biggrin.gif Napisałem już z 5 Frame'ów i wszystkie poszły do kosza... Choć Rapide ma kilka wad, to wyjdzie na ludzi biggrin.gif


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Prph
post 11.01.2007, 13:39:46
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.
Go to the top of the page
+Quote Post
Turgon
post 12.01.2007, 10:37:07
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?


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Prph
post 12.01.2007, 13:59:05
Post #41





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(Turgon @ 12.01.2007, 10:37:07 ) *
Prph: Gdzie się zgłaszać:D?


Hmm, chyba do mnie smile.gif
Go to the top of the page
+Quote Post
nrm
post 12.01.2007, 14:18:39
Post #42





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


to ja poczekam aż będzie już coś wiadomo winksmiley.jpg z tych punktów które wymieniłem.


--------------------
Go to the top of the page
+Quote Post
krzyszbi
post 12.01.2007, 14:41:40
Post #43





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

Ostrzeżenie: (0%)
-----


witam
framework zapowiada się ciekawie smile.gif
ale mam dwa pytanka
1. skąd można pobrać aktualną i spakowaną do zip-a rar-a gz-ta wersje bo na stronie owszem da się przeglądać kod w przeglądarce ale nigdzie nie znalazłem linka do archiwum sad.gif może źle szukam
2. i czy jest możliwość korzystania z nice-url w Rapide questionmark.gif bo jak narazie widziałem że linki są budowane w stylu [bhttp://twojadres.pl/www/?controller=Example&action=Example[/b] a jak nie ma to pewnie trzeba będzie napisać i może z tego coś fajnego wyjść smile.gif


--------------------
Everything should be made as simple as possible, but not simpler. - A.Eainstein
Go to the top of the page
+Quote Post
envp
post 12.01.2007, 20:56:05
Post #44





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam,

W projekcie Rapide ruszyło oficjalne forum dostępne tutaj

Zapraszam wszystkich.

Ps. Jeżeli naruszyłem regulamin proszę o usunięcie posta i z góry przepraszam.
Go to the top of the page
+Quote Post
nrm
post 13.01.2007, 13:27:44
Post #45





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


super, tylko postawiliście by to na czymś porządnym: punBB albo (imho super) Simple Machines Forum. jak wroce w pon to tam do was zajrze.


--------------------
Go to the top of the page
+Quote Post
Turgon
post 13.01.2007, 15:37:41
Post #46





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Normanos: ja to im mówiłem, ale jak widać propozycja została odrzucona. Ja proponowałem myBB.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Prph
post 13.01.2007, 22:23:12
Post #47





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(krzyszbi @ 12.01.2007, 14:41:40 ) *
witam
framework zapowiada się ciekawie smile.gif
ale mam dwa pytanka
1. skąd można pobrać aktualną i spakowaną do zip-a rar-a gz-ta wersje bo na stronie owszem da się przeglądać kod w przeglądarce ale nigdzie nie znalazłem linka do archiwum sad.gif może źle szukam
2. i czy jest możliwość korzystania z nice-url w Rapide questionmark.gif bo jak narazie widziałem że linki są budowane w stylu http://twojadres.pl/www/?controller=Exampl...;action=Example a jak nie ma to pewnie trzeba będzie napisać i może z tego coś fajnego wyjść smile.gif


Ad1. Zaraz chyba cos napisze do tworzenia snapshota. Mozna sciagnac za pomoca SVN.
Ad2. Jest mozliwosc. Banalnie proste:
- Kazac uzywac Front kontrolerowi Rapide_Router_Rewrite
- utowrzyc .htaccess kierujacy wszystk co trzeba na index.php

Jeszcze dzis ruszy nowe forum.

Pozdrawiam, Adrian.


Pod adresem http://rapide.pl/snapshot/ dostępna najnowsza wersja Rapide. Snapshot tworzony jest każdego dnia.

Adrian.
Go to the top of the page
+Quote Post
eS...
post 14.01.2007, 00:13:17
Post #48





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


Czekam na forum i na jakieś przykłady/tutorial jako że jestem na etapie szukania frameworka i nauki korzystania z MVC.


--------------------
Go to the top of the page
+Quote Post
envp
post 14.01.2007, 01:59:27
Post #49





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Forum zostanie zmienione na inne w najbliższym czasie.
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 10:24:15
Post #50





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Zasadniczo na co ?


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
envp
post 14.01.2007, 10:31:11
Post #51





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Zasadniczo to powstał mały problem : myBB nie ma jeszcze polskiego wsparcia dla najnowszej wersji, a punBB jest zbyt ograniczone - jakieś propozycje?
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 10:35:53
Post #52





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


myBB, ja mogę przetłumaczyć ;] Tylko trza będzie siąść i robić smile.gif


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
envp
post 14.01.2007, 11:30:42
Post #53





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Nom, albo poczekać na polskie wsparcie... ;/
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 19:39:39
Post #54





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Ono nigdy nie powstanie raczej, bo Polaki leniuchy ;] To tłumaczyć czy nie biggrin.gif? Bo nie wiem co robić biggrin.gif?


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Prph
post 14.01.2007, 20:42:53
Post #55





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(Turgon @ 14.01.2007, 19:39:39 ) *
Ono nigdy nie powstanie raczej, bo Polaki leniuchy ;] To tłumaczyć czy nie biggrin.gif? Bo nie wiem co robić biggrin.gif?


punBB - trzebaby kupe czasu, zeby zainstalowac wszystkie modyfikacje, ktore pozwola na normalna prace.
SimplaMachines - beznadziejne :/

Tlumacz myBB. Dzis postawie angielska wersje. Lang wrzucimy, jak bedzie gotowy.

BTW, phpBB dawno by juz stalo.

Adrian.
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 20:51:49
Post #56





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Ta jest panie generale smile.gif
Na jutro postaram się zrobić podstawowe akcje ;] Do końca tygodnia przetłumaczyć powinienem wszystko.

Przetłumaczona 1/3 . Mam dość ;] Jutro kończę biggrin.gif

Ten post edytował Turgon 14.01.2007, 22:02:07


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
nrm
post 15.01.2007, 15:04:44
Post #57





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(envp @ 14.01.2007, 10:31:11 ) *
Zasadniczo to powstał mały problem : myBB nie ma jeszcze polskiego wsparcia dla najnowszej wersji, a punBB jest zbyt ograniczone - jakieś propozycje?

a ja niewyraźnie napisałem? winksmiley.jpg

Simple Machines - sam instalowałem ostatnio dla kilku osób z darmowgo projektu -> forum.serialopedia.pl i jestem w szoku jak mocno to forum się rozwinęło (punBB lezy w sprawach moderacyjnych; to czyli SFM winksmiley.jpg ).


--------------------
Go to the top of the page
+Quote Post
mike
post 15.01.2007, 19:33:28
Post #58





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


~Prph, ~envp, ~Turgon jeśli nie potraficie sobie zainstalować jakiegoś komunikatora to powiedzcie.

Czat sobie urządziliście czy jak?

Zamykam.

Otwieram na prośbę Prph
Go to the top of the page
+Quote Post
elem
post 16.01.2007, 02:20:57
Post #59





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


..... kawał dobrej roboty smile.gif
Go to the top of the page
+Quote Post
Prph
post 18.01.2007, 11:27:06
Post #60





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam,

Wczoraj przemianowaliśmy wersję na 0.4. Od czasu pojawienia się Jakuba Kozickiego w projekcie poprawiono wiele elementów i zlikwidowano kilka błędów. Teraz głównym celem projektu jest stabilizacja Rapide. W kolejnych odsłonach mamy zamiar dodać kilka dosyć znaczących elementów, ale przede wszystkim chcemy usunąć wszelkie problemy, jakie może napotkać programista używając Rapide.

Dodam, że można już korzystać z http://forum.rapide.pl - zapraszamy!

Zachecam wszystkich do pobrania źródeł Rapide. Najnowszy snapshot pod adresem http://rapide.pl/snapshot/.

Pozdrawiam, Adrian.

Ten post edytował Prph 18.01.2007, 11:27:44
Go to the top of the page
+Quote Post
eS...
post 18.01.2007, 14:44:14
Post #61





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


A kiedy powstanie dokumentacja, narazie robicie layouty dla strony itd itp a najważniejszego nie ma


--------------------
Go to the top of the page
+Quote Post
Prph
post 18.01.2007, 15:16:32
Post #62





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(eS... @ 18.01.2007, 14:44:14 ) *
A kiedy powstanie dokumentacja, narazie robicie layouty dla strony itd itp a najważniejszego nie ma


Wspominalem juz o tym kilka postow wczesniej. Nad dokumentacja moga pracowac jedynie deweloperzy. Tak sie sklada, ze kazdy z nas studiuje, a wiadomo jak jest w styczniu. Dokumentacja bedzie utworzona w lutym.

Co do layoutu - robi go Ano.

Adrian.
Go to the top of the page
+Quote Post
AxZx
post 22.01.2007, 23:13:10
Post #63





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


mam takie pytanie, moze troche ogolne

jaka przewage ma rozwiazanie zastosowane w Rapide z podzialem widoku na klase i szablon?

w CI framework widok jest juz szablonem, mozna w nim wstawiac html, php, dane z kontrolera.

a do czego sluzy klasa widok? tylko do ladowania szablonu? przeciez to wiecej plikow, wiecej pisania i wogole wszystkiego wiecej.


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Prph
post 23.01.2007, 00:30:54
Post #64





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 22.01.2007, 23:13:10 ) *
mam takie pytanie, moze troche ogolne

jaka przewage ma rozwiazanie zastosowane w Rapide z podzialem widoku na klase i szablon?

w CI framework widok jest juz szablonem, mozna w nim wstawiac html, php, dane z kontrolera.

a do czego sluzy klasa widok? tylko do ladowania szablonu? przeciez to wiecej plikow, wiecej pisania i wogole wszystkiego wiecej.


Ale poprawnie implementuje MVC. Przyklad:

Cennik produktow w sklepie. Wystarczy napisac jedna akcje i kilka widokow, aby cennik przedstawiac w postaci XML, CSV, PDF.

Oczywiscie mozna zrobic jeden widok - nie ma problemu. Tworzymy widok o nazwie Html. i teraz w kontrolerze:

  1. <?php
  2. $oView->$this->getView('Html');
  3. $oView->setTemplate('Moj_szablon');
  4.  
  5. $oView->zmienna = 'wartosc';
  6.  
  7. return $oView;
  8. ?>


Poza tematem widoku. W Rapide zostal utworzony nowy obiekt - Request. Informacje o nim na forum Rapide: http://forum.rapide.pl/viewtopic.php?t=4

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
AxZx
post 23.01.2007, 22:52:31
Post #65





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


troche skomplikowane to
jezeli chcialbym zeby zamiast html wyswietlil mi pdf to nie mozna w kontrolerze odpalic odpowiedniego widoku?


  1. <?php
  2. $oView->$this->getView('pdf');
  3. $oView->setTemplate('Moj_szablon');
  4.  
  5. $oView->zmienna = 'wartosc';
  6.  
  7. return $oView;
  8. ?>


ja wychodze z zalozenia ze framework jest po to zeby upraszczac pisanie aplikacji, a tutaj mozna sie pogubic w gaszczu plikow i katalogow.

moze poczekam na jakas przykladowa aplikacji, dokumentacje - moze wtedy mi sie rozjasni o co tak naprawde chodzi:)


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Prph
post 24.01.2007, 00:00:39
Post #66





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 23.01.2007, 22:52:31 ) *
troche skomplikowane to
jezeli chcialbym zeby zamiast html wyswietlil mi pdf to nie mozna w kontrolerze odpalic odpowiedniego widoku?
  1. <?php
  2. $oView->$this->getView('pdf');
  3. $oView->setTemplate('Moj_szablon');
  4.  
  5. $oView->zmienna = 'wartosc';
  6.  
  7. return $oView;
  8. ?>



No przecież o tym mówiłem ;-) Jeżeli chcesz, możesz tak używać widoków.

Przyznam, że tworzenie kolejnych klas widoku, które i tak dziedziczą z Rapide_View_Html może być męczące, ale publiczna metoda setTemplate() rozwiązuje ten problem. Jak już wcześniej wspomniałem - Rapide mocno implementuje MVC, dlatego taka konwencja.

Pracujemy nad intuicyjnością w Rapide, ale zgodzę się - bez dokumentacji będzie ciężko. Ogólnie staramy się tak projektować Rapide, żeby był łatwy, dawał duże możliwości i był poprawnie napisany. Żadne obejścia w kodzie nie wchodzą w grę.

Pozdrawiam, Adrian.

Ten post edytował Prph 24.01.2007, 00:01:14
Go to the top of the page
+Quote Post
ikioloak
post 24.01.2007, 13:56:16
Post #67





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

Ostrzeżenie: (0%)
-----


Na swojej stronie reklamujesz Rapide jako pierwszy polski framework php. A zgodzisz sie chyba, ze pierwsi to akurat na pewno nie jestescie. Z tego co pamietam to nawet Cake ma polskie korzenie.
A poza tym, to powodzenia. Szkoda ze nie mam czasu sie przyjrzec Rapide.
Go to the top of the page
+Quote Post
Prph
post 24.01.2007, 17:01:31
Post #68





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(ikioloak @ 24.01.2007, 13:56:16 ) *
Na swojej stronie reklamujesz Rapide jako pierwszy polski framework php. A zgodzisz sie chyba, ze pierwsi to akurat na pewno nie jestescie. Z tego co pamietam to nawet Cake ma polskie korzenie.
A poza tym, to powodzenia. Szkoda ze nie mam czasu sie przyjrzec Rapide.


Heheh, przyznam się, że czekałem na moment, kiedy ktoś to wypomni winksmiley.jpg Oczywiście nie napisałem tak bez powodu. Tu raczej chodzi o to, że Rapide ma aspiracje być pierwszym poważnym frameworkiem, tworzonym przez nas. To takie motywujące hasło. Nie ukrywam, że chcemy zebrać pewną społeczność wokół Rapide i wspólnie rozwijać ten framework.

A co do polskich frameworków - Phiend mógł być takim. Niestety projekt upadł.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
nrm
post 24.01.2007, 21:53:20
Post #69





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


społeczność się zacznie jak będzie dokumentacja prosta jak w CI smile.gif ale o tym już wiecie więc pozostaje już tylko czekać na Wasz wolny czas. Poza tym Rapide jeszcze sporo brakuje aby "jechać" na nim na poważnie winksmiley.jpg

Cytat(ikioloak @ 24.01.2007, 13:56:16 ) *
Na swojej stronie reklamujesz Rapide jako pierwszy polski framework php. A zgodzisz sie chyba, ze pierwsi to akurat na pewno nie jestescie. Z tego co pamietam to nawet Cake ma polskie korzenie.

to może mała modyfikacja: pierwszy polski framework w php5? ;D


--------------------
Go to the top of the page
+Quote Post
sf
post 28.01.2007, 09:28:29
Post #70





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


http://www.mojavi.org/ - Rapid Framework (Mojavi 4)

smile.gif


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
bim2
post 28.01.2007, 11:43:10
Post #71





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Przyjżałem sie rapidowi, i on jest porpostu babastyczny. Bardzo dobrz napisany i intuicyjnie. No może pogubiłem się troszkę jak ładuje się akcje, ale już wiem haha.gif Mi się podoba. fajne sa adaptery w logach. Rkingsmiley.png
Gorąco polecam


--------------------
Go to the top of the page
+Quote Post
Prph
post 28.01.2007, 12:09:52
Post #72





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(sf @ 28.01.2007, 09:28:29 ) *
http://www.mojavi.org/ - Rapid Framework (Mojavi 4)

smile.gif


To tez nas zaskoczylo :/ Chyba trzeba bedzie porozmawiac z progrmistami Mojavi. Rapide Framework oficjalnie pojawil sie 07.09 - pierwszy post na forum. Strony Mojavi wtedy nie bylo.

Pozdrawiam, Adrian.
Go to the top of the page
+Quote Post
AxZx
post 28.01.2007, 12:22:24
Post #73





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


Cytat(bim2 @ 28.01.2007, 11:43:10 ) *
Przyjżałem sie rapidowi, i on jest porpostu babastyczny. Bardzo dobrz napisany i intuicyjnie. No może pogubiłem się troszkę jak ładuje się akcje, ale już wiem haha.gif Mi się podoba. fajne sa adaptery w logach. Rkingsmiley.png
Gorąco polecam


moze napiszesz na forum.rapide.pl przyklad jakiejs aplikacji?
zeby dolaczyc model widok kontroler.


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
bim2
post 28.01.2007, 13:30:44
Post #74





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Przykro mi ale już to usunołe. Powie, tylko że nie jest to trudne. Teraz pisze własnego FW, pewnie nie tak dobrego ale zawsze swoje...


--------------------
Go to the top of the page
+Quote Post
Prph
post 28.01.2007, 15:01:00
Post #75





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 28.01.2007, 12:22:24 ) *
moze napiszesz na forum.rapide.pl przyklad jakiejs aplikacji?
zeby dolaczyc model widok kontroler.


Aplikacji przykladowej jeszcze nie ma, ale kazdego dnia pisana jest dokumentacja: www.doc.rapide.pl.

Pozdrawiam, Adrian.

Ten post edytował Prph 28.01.2007, 15:01:22
Go to the top of the page
+Quote Post
nrm
post 28.01.2007, 16:05:16
Post #76





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 28.01.2007, 12:22:24 ) *
moze napiszesz na forum.rapide.pl przyklad jakiejs aplikacji?
zeby dolaczyc model widok kontroler.

Daj nam trochę czasu: najpierw dokumentacja, potem jakaś lista to-do/roadmapa. Z pewnością będzie duży tutorial w stylu Symfony czyli "jak w xx dni napisać cośtam" (myślę, że będzie to katalog stron - ze względu na moje związki z SEO będę miał mały feedback działania tego). Być może wcześniej zrobię dużo prostszy przykład (ale to już można wyczytać z doc.rapide.pl) typu: 1 kontroler -> 1 model -> 1 widok = dla szybkiego wyjaśnienia tym, którzy jeszcze z MVC i frameworkami nie mieli do czynienia.


--------------------
Go to the top of the page
+Quote Post
AxZx
post 28.01.2007, 20:34:39
Post #77





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


ja odnosilem sie do konktetnego posta, do posta uzytkownika pim2 ktory napisal
Cytat
Przyjżałem sie rapidowi, i on jest porpostu babastyczny. Bardzo dobrz napisany i intuicyjnie. No może pogubiłem się troszkę jak ładuje się akcje, ale już wiem haha.gif Mi się podoba. fajne sa adaptery w logach


skoro takie cos napisal to niech sie podzieli, skoro juz doszedl do tego jak sie pisze aplikacje z tym frameworkiem to moglby sie przyczynic i napisac:)


wielkie brawa za rozpoczecie prac nad dokumentacja:) dosyc dobrze sie czyta.

Ten post edytował AxZx 28.01.2007, 20:39:34


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Prph
post 29.01.2007, 09:02:58
Post #78





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 28.01.2007, 20:34:39 ) *
wielkie brawa za rozpoczecie prac nad dokumentacja:) dosyc dobrze sie czyta.


Mam jeszcze taka prosbe, zeby komentowac to, co znajduje sie w dokumentacji na forum projektu - http://forum.rapide.pl/viewtopic.php?t=10

Adrian.
Go to the top of the page
+Quote Post
mike
post 30.01.2007, 20:24:07
Post #79





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Prph @ 28.01.2007, 12:09:52 ) *
To tez nas zaskoczylo :/ Chyba trzeba bedzie porozmawiac z progrmistami Mojavi. Rapide Framework oficjalnie pojawil sie 07.09 - pierwszy post na forum. Strony Mojavi wtedy nie bylo.

Gwarantuję Ci, że projekt Mojavi 4, strona oraz cała reszta istniała dużo wcześniej niż zdążyłeś pomyśleć o swoim frameworku tongue.gif
Go to the top of the page
+Quote Post
Prph
post 30.01.2007, 20:30:43
Post #80





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(mike_mech @ 30.01.2007, 20:24:07 ) *
Gwarantuję Ci, że projekt Mojavi 4, strona oraz cała reszta istniała dużo wcześniej niż zdążyłeś pomyśleć o swoim frameworku tongue.gif



Goog for you. Akurat strona Mojavi nie moze poszczycic sie duza dzialalnoscia :]
Go to the top of the page
+Quote Post
mike
post 30.01.2007, 20:33:05
Post #81





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Prph @ 30.01.2007, 20:30:43 ) *
Goog for you. Akurat strona Mojavi nie moze poszczycic sie duza dzialalnoscia :]

Nie chodzi o to. Nie jest tajemnicą, że Mojavi nie jest już rozwijane.
Mój komentarz dotyczył tego, że nazwa jest po stronie Mojavi tongue.gif
Go to the top of the page
+Quote Post

5 Stron V   1 2 3 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 16:11