Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.02.2006 Ostrzeżenie: (0%)
|
Na laborkach z programowania dostaliśmy za zadanie stworzyć stronę internetową oparta o wzorzec MVC, postanowiłem nie korzystać z dostępnych powszechnie frameworków, tylko napisać własny prosty ala framework oparty na idei wzorca MVC (przy okazji ucząc się dogłębniej idei OPP i wzorców projektowych). Ponieważ ten framework nie jest jeszcze kompletny i mimo że będzie dalej rozbudowywany chciałem zapytać Was o pomysły, poprawki odnosie jego rozwoju.
Podstawowe informacje o budowie tego frameworka: - zastosowanie mod_rewrite - przekazywanie przez url modeli i akcji (wzorowane na ZendFramework) - wykorzystanie bibliotek xajax i savant Na razie brak dokładnej implementacji błędów i zabezpieczeń przed XSS, SQLInjection i innymi ...Injection ;] (częściowe są) Kod frameworka wraz z przykładowymi kontrolerami, modelami i widokami możecie ściągnąć z http://rapidshare.com/files/168371642/miko.rar lub http://www.ppiw.ovh.org/miko.rar Ten post edytował kangurmk 29.11.2008, 10:45:11 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
Niewygodne i nieco mylące tworzenie zmiennych w akcji. Uzywasz vars, a dalej jest assign. Powinno wystarczyc
Potem cały kontener z danymi jest ekstraktowany automatycznie w widoku
no nie wiem, ale wydaje mi się, że
Byłoby lepszą implementacją niż dostęp przez tablicę, choć jeszcze lepsze by było, gdyby istniała osobna akcja wylogowująca użytkownika. Pozdrawiam |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.02.2006 Ostrzeżenie: (0%)
|
Niewygodne i nieco mylące tworzenie zmiennych w akcji. Uzywasz vars, a dalej jest assign. Powinno wystarczyc
vars przechowuje zmienne przekazane metodą GET i zmienne dodane funkcją AddMKObj klasy MKBootStrap, a metoda assign służy do kopiowania zmiennej do szablonu (jest to opakowanie funkcji assign z systemu szablonów savant), czyli zmienne przekazane metodą assign będzie można używać w kodzie widoku (w szablonie). Ogólnie koncepcja polega na tym że w pliku index.php tworzony jest obiekt klasy MKBootStrap, który domyślnie tworzy obiekty klasy savant i xajax + zmienne z $_GET i dodaje je to tablicy vars (dzieje się to w konstruktorze klasy MKBootStrap). Obiekt tej klasy tworzymy tak: Kod $boot = MKBootStrap::getInstance($load->GetAppDir()); Następnie możemy, utworzyć obiekty innych klas zawartych w folderze lib, np obiekt klasy Auth jeśli wymagamy aby nasza aplikacja obsługiwała logowanie użytkowników (na razie w lib jest tylko jedna klasa Auth którą możemy a nie musimy dodawać, w przyszłości pewnie powstanie więcej, np do rejestracji użytkowników, wysyłania e-maili itp) Kod $auth = MKAuth::getInstance(); $boot->AddMKObj('auth', $auth); i teraz w każdym kontrolerze mamy dostęp do obiektu auth poprzez zmienną $this->vars. Potem cały kontener z danymi jest ekstraktowany automatycznie w widoku
no nie wiem, ale wydaje mi się, że
Byłoby lepszą implementacją niż dostęp przez tablicę, choć jeszcze lepsze by było, gdyby istniała osobna akcja wylogowująca użytkownika. Pozdrawiam Co do osobnej akcji wylogowującej to dobry pomysł, ale to już kwestia gustu osoby piszącej dany kontroler. |
|
|
|
kangurmk Ala MVC framework 28.11.2008, 23:51:37
AxZx Cytat(kangurmk @ 28.11.2008, 23:51:37... 29.11.2008, 00:51:34 
bim2 Cytat(AxZx @ 29.11.2008, 00:51:34 ) w... 29.11.2008, 12:54:18
kangurmk Cytatw większości aplikacji (o ile nie we wszystki... 29.11.2008, 10:34:30
pyro wrzuc gdzie indziej niz rapid... 29.11.2008, 10:36:17
kangurmk Proszę bardzo: http://www.ppiw.ovh.org/miko.rar 29.11.2008, 10:44:44
AxZx Cytat(kangurmk @ 29.11.2008, 10:34:30... 29.11.2008, 10:52:19
AxZx ale chyba przyznasz że model i kontroler są główny... 29.11.2008, 13:27:15
Cysiaczek Rozumiem. Zobacz jednak, że nie połapa... 29.11.2008, 14:51:36 
mike Cytat(Cysiaczek @ 29.11.2008, 14:51:3... 29.11.2008, 14:56:22
Cysiaczek Heh, kwestia gustu - ja nie chcę, żeby zlikwidowa... 29.11.2008, 15:00:51
bim2 Hmm, ja jednak byłbym nadal z setVar Pana Mike. Ki... 29.11.2008, 15:36:24
kangurmk Ok, pozostanę przy obecnym rozwiązaniu (jak będę m... 29.11.2008, 15:58:29
erix Magiczne metody __set() i __get() 29.11.2008, 16:01:32
kangurmk Czy ten nowy obiekt MKVarsTransver (wyżej w postac... 29.11.2008, 16:48:34
erix Metoda __get jest wywoływana, gdy zmienna w klasie... 29.11.2008, 20:40:20 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 14:59 |