Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] sterowanie modułami we własnym frameworku.
Forum PHP.pl > Forum > PHP
karmer
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.
ayeo
Witaj!

Nie jestem pewien czy dobrze rozumiem. Masz jeden wspólny szablon dla wszystkich modułów? Każdy moduł zwykle ma kilka swoich szablonów. Na przykład moduł artykuł masz szablony do dodawania, edycji, wyświetlania listy itd. Oczywiście masz jeden szablon główny do którego wstawiasz już konkretny kontent czyli te szablony z modułów. Nie rozumiem Twojego podejścia, ale może coś źle zrozumiałem.

Pozdrawiam!
karmer
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.
marcio
Moze pokaz lepiej jakies urywki kodu albo pokaz strone postawiona na tym framework'u.
karmer
Wczoraj wykupiłem hosting. Niedługo umieszczę stronę na serwerze.
marcio
No to czekamy tez na zrodlo framework'a bo tak to nie ma co oceniac.
bim2
Chyba bardziej pasuje to do działu ocena.

bez przjrzenia kodu nic się nie da powiedzieć, ale głównie frameworka pisze się, aby szybciej pisać aplikację. jak napiszesz na tym 20 serwisów różnej maści, 3 razy zmienisz koncepcję to może już ta 4 będzie niezłą koncepcją. biggrin.gif Ja jestem już przy piątek koncepcji, a ciągle coś zmieniam, dodaje żeby mi było szybciej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.