![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 3.09.2008 Skąd: Kętrzyn Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Postanowiłem napisać swój własny framework. Jeszcze drobne poprawki i będzie ok. Wcześniej jednak może ocenicie moj sposób rozumowania i powiecie co o tym sądzicie. Potraktowałem serwis www jak aplikację. Każda aplikacja do komunikacji z użytkownikiem używa widoków, które są wcześniej z wielką dbałością projektowane. Jest ich określona ilość - zgodna z ilością funkcji oferowanych przez aplikację. W frameworku nad którym pracuję do pierwszych czynności projektowych należy zaprojektowanie widoków (szablonów stron) w których wpisuję takie divy: <div id="NazwaModułu_NazwaBoxu"></div>. Z tego wynika, że każdy moduł do komunikacji z użytkownikiem wymaga istnienia w szablonie divów przeznaczonych wyłącznie dla niego. Jak mam już utworzone takie widoki (np. index, logowanie, artykul, itp.) to uruchamiam obiekt actioncontrollera, w którym w "case" mam ujęte wszystkie zaprojektowane widoki. Dla każdego widoku uruchamiam obiekty rdzenia aplikacji (viewcontroller, session) plus dodatkowe obiekty wymagane przez dany widok. Uruchomione moduły "odpytują" viewcontroller o swoje "boxy" (divy w szablonach) do których będą wysyłały wyniki swoich działań. Actioncontroller uruchamiający wszystkie moduły wywołuje dla każdego z nich ich własną metodę ActionListener do której przekazuje po kolei wszystkie "polecenia" przekazane w adresie url. Każdy moduł ma możliwość wykonania określonego polecenia np. mamy do wykonania akcję "login" i jeżeli moduł musi wykonać jakieś operacje podczas logowania to wystarczy umieścić w jego metodzie ActionListener kod obsługujący to zdarzenie. Po tym jak wszystkie moduły obsłużą swoje zdarzenia zostaje uruchomiona metoda viewcontrollera wysyłająca stronę do przeglądarki klienta. Framework używa oczywiście urli typu: http://www.mojastrona.pl/widok/akcja http://www.mojastrona.pl/akcja http://www.mojastrona.pl/widok/akcja,param...1,param2,param3 cokolwiek nie wpiszecie po http://www.mojastrona.pl/... aplikacja będzie działać. Po prostu zaimplementowałem wybór domyślnego widoku jak i akcji. To wszystko. Napiszcie proszę co o tym sądzicie i czy warto nadal to rozwijać. Pozdrawiam wszystkich serdecznie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 3.09.2008 Skąd: Kętrzyn Ostrzeżenie: (0%) ![]() ![]() |
Mam kilka szablonów głównych.
- index - artykul - profil_uzytkownika - galeria_zdjęć Przykład - szablon artykuł. W nim są boxy o nazwach: artykul_tytul, artykul_zawartosc, artykul_komentarze, artykul_autor, artykul_data menu_glowne, menu_pomocnicze, reklama_box1, reklama_box2, logo_grafika, logo_nazwa, session_loginform, session_ktozalogowany. widać z powyższego, że na pewno będą uruchomione moduły: artykul, menu, reklama, logo, session Każdy z nich 'otrzyma dostęp' tylko do swoich boxów w których będą umieszczać swój content. Każdy z nich będzie mógł 'obsłużyć' każde zdarzenie przekazane w adresie url. Wracając do generowania zawartości. Poniżej przykład: przykładowo mam adres http://.../artykul/pokaz,moja_pierwsza_strona metoda: pokaz parametr: moja_pierwsza_strona Moduł wykonując metodę 'pokaz' wypisuje informacje do poszczególnych boxów, zgodnie z nazwą (lub tam gdzie projektant sobie życzy) - to dzieje się wewnątrz modułu. przykładowo mam adres http://.../artykul/wstaw metoda: wstaw parametr: brak Moduł wykonując metodę 'wstaw' wypisuje kod formularza (do pisania nowego artykulu) do boxu 'artykul_zawartosc'. Ewentualne inne inforamcje w/g uznania programisty do innych boxów. Ale tylko tych, które zostały dla niego wydzierżawione przez viewcontroller. Moduły nie korzystają z własnych szablonów a generują content na 'gorąco'. Oczywiście można to oprogramować inaczej. Pracuję nad tym aby moduły otrzymywały informację o tym jakiego typu przeglądarką dysponuje użytkownik (graficzna, tekstowa, czy wyświetlacz breaila) - wychodzę z takiego założenia, że to same moduły 'mają wiedzieć' jak zaprezentować swoje dane w danego typu przeglądarce aby przekazywały najlepiej informację. Pozdrawiam. Ten post edytował karmer 10.11.2008, 23:04:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 22:33 |