Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%)
|
Witam wszystkich,
Ostatnio zacząłem czytać o obiektowym php5, MVC, frameworkach i postanowiłem zacząć pisać kod, który byłby dla mnie wygodny oraz co ważne - nadawał się do powtórnego wykorzystania. Opiszę to co do tej pory zrobiłem. Proszę Was, znaczniej bardziej doświadczonych programistów, o uwagi na temat mojego podejścia. Zaznacze, że swoją pracę oparłem do tej pory na artykule Frameworki z php.pl, framework CakePHP oraz o wypowiedzi forumowiczach w topikach MVC. Charakterystyka ogólna: Drzewo projektu Kod |- actions/ (tu wrzucam kontrolery w postaci class.NazwaKontrolera.php) |- conf/ |- models/ (tu będą modele, do tej pory nic tam nie mam) |- lib/ | +-- core/ - tu są moje pliki wykorzystywane w całej aplikacji | +-- class.Dispatcher.php | +-- class.Controller.php |- templates/ - szablony Smarty | |- index.php Oczywiście nie jest to finalny widok drzewa projektu. Ale nie to jest ważne. Jak działa mój framework? index.php uruchamia Dispatcher, który parsuje URL. Jeżeli następuje zgłoszenie index.php/Akcja1/Parametr1/Parametr2/, to dispatcher załącza kontroler Akcja1, a następnie kontroler tej akcji wywołuje na sobie (w zasadzie na potomku) metodę Parametr1 z parametrem Parametr2. Przykład: strona.pl/index.php/Uzytkownik/Pokaz/1234. Dispatcher przekaże kontrolę do kontrolera Uzytkownik. Ten natomiast włączy metodę Pokaz(1234); Generalnie wygląda to właśnie tak. Z tego co czytałem, to chyba całkiem logiczne rozwiązanie. Oczywiście mogę się mylić... Pliki
Będę Wam ogromnie wdzięczny za uwagi. Pozdrawiam serdecznie, Adrian. Ten post edytował Prph 4.03.2006, 19:40:41 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zablokowani Postów: 46 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (10%)
|
Postanowiłem odejść od wzorca MVC, realizując aplikację wg własnego podziału na 5 warstw. Uważam takie rozwiązanie za najbardziej optymalne w przypadku moich potrzeb.
Warstwa kontroli analizuje żądanie HTTP, następnie tworzy instancję odpowiedniej klasy warstwy poleceń, która realizuje wszystkie zadania w warstwie logiki biznesowej. Wynik przetwarzania trafia do warstwy kontroli, która analizuje dane i uruchamia odpowiedni widok. W mojej aplikacji warstwa danych będzie zawierała dwie klasy: ObsługaBazyDanych oraz ObsługaPlikuXML. Z tych interfejsów będzie korzystała warstwa logiki biznesowej. Warstwa Logiki Biznesowej będą to klasy modelujące problemy, które system ma rozwiązywać. Np. dodanie nowego użytkownika, sprawdzenie czy login jest wolny, itp. Warstwa Prezentacji będą to klasy odpowiedzialne za zaprezentowanie danych na zewnątrz systemu czyli html, rss, e-mail, pdf. Warstwa Kontroli może wygenerować więcej niż jedną prezentację, np. wysłanie danych e-mail, wyświetlenie strony WWW. Warstwa kontroli ma za zadanie, jak sama nazwa wskazuje, kontrolowanie funkcjonowania systemu czyli analizować dane wejściowe i wyjściowe czy pracę warstwy poleceń. Budowanie nowej aplikacji na bazie mojego frameworka to tworzenie klas warstwy logiki biznesowej, w której będą wszystkie możliwe akcje do wykonania oraz klas warstw poleceń, które inicjują poszczególne metody klas warstw logiki biznesowej. Jedno żądanie HTTP może wymagać zrealizowania kilku zadań (akcji). (IMG:http://bbmmog.com/bbmmog.png) Ten post edytował eMartio 12.03.2006, 10:45:35 |
|
|
|
Prph Zalążek frameworka z MVC 4.03.2006, 16:02:14
sf Brak komentarzy, miales jakis pomysl, ale nie kazd... 4.03.2006, 18:07:56
matid Cytat(sf @ 2006-03-04 18:07:56)Pozatym nie ba... 4.03.2006, 18:56:02
Prph Diękują za uwagi.
Co do die() - faktycznie nie p... 4.03.2006, 19:52:05
Fipaj Ten pomysł z Dispatcherem mi się nie podoba.
Czem... 4.03.2006, 19:58:25
Prph Ale przeciez w praktyce to tak działa
Ale chyba ... 4.03.2006, 20:26:36
matid We wzorcu MVC kontroler to część aplikacji odpowie... 4.03.2006, 20:51:50
Ociu Ja sobie podzieliłem to tak:
Kodframework
- Web
... 5.03.2006, 09:12:40
Prph Teraz raz jeszcze przeczytalem Wprowadzenie do MVC... 5.03.2006, 10:14:11
hwao W ogole brak Ci widoku w tym frameworku.
Glupio j... 5.03.2006, 10:24:42
matid U mnie to wygląda tak:
index.php:
W tym pliku two... 5.03.2006, 10:51:08
Prph Witam
Widzę, że niechętnie podchodzicie do mojej... 5.03.2006, 16:47:05
Ociu Widze, że czekasz aż ktoś rzuci kodem.[PHP] pobier... 7.03.2006, 14:59:34
Prph Przejrzałem kod Phienda, poczytałem dokumentacje, ... 9.03.2006, 23:24:05
hwao czemu u Ciebie akcja wlacza Model i Widok?
Pr... 10.03.2006, 06:48:18
Prph Yyyyy? A to co ma włączać model i widok?
Ludzie cz... 10.03.2006, 07:54:17
sf Hyh, w ostatnim php Solutions jest fajnie napisane... 10.03.2006, 09:03:36
mike_mech Cytat(Prph @ 2006-03-10 07:54:17)Yyyyy? A to ... 10.03.2006, 09:09:42
Martio Cytat(mike_mech @ 2006-03-10 10:09:42)Hyh, w ... 10.03.2006, 12:28:05
hawk Żaden nie trzymał się zasad wzorca MVC? Bo to zale... 10.03.2006, 14:51:59
Martio CytatI dlaczego to, że jakiś framework nie trzyma ... 10.03.2006, 15:40:32
Vengeance Akcja to po prostu część kontrolera. Ponieważ kont... 10.03.2006, 15:57:25
Martio Dobra, ale jak obiektowo w takim bądź razie zakodo... 10.03.2006, 20:41:56
DeyV W takim momencie okazuje, się, że wydzielenie z ko... 10.03.2006, 22:34:27
Prph No proszę... Najpierw ktoś mówi, że akcja nie ster... 11.03.2006, 00:51:03
DeyV Pamiętaj o jednej rzeczy.
MVC nie mówi, jak ma b... 11.03.2006, 01:57:31
Prph No dobrze, a teraz juz troche idac w przyszlosc...... 11.03.2006, 10:42:13
eMartio Zerknijcie na to. Czeskie, ale myślę, że dobre roz... 11.03.2006, 13:14:35
Martio Chciałbym jeszcze powrócić do akcji. Powiedzmy, że... 11.03.2006, 14:04:49
aleksander [PHP] pobierz, plaintext <?phpclass Kontroler... 11.03.2006, 14:39:03
Prph Ha! A to całkiem ciekawe rozwiązanie.
A jeszc... 11.03.2006, 18:01:49
hwao zalezy jakie to dane...
konfiguracja aplikacji de... 11.03.2006, 18:34:17
Prph Cytat(hwao @ 2006-03-11 17:34:17)konfiguracja... 11.03.2006, 20:07:57
hwao Cytat(Prph @ 2006-03-11 20:07:57)Cytat(hwao ... 11.03.2006, 21:11:28
hawk Cytat(Martio @ 2006-03-11 14:04:49)[PHP] pobi... 11.03.2006, 22:46:08
Ociu Ja podzieliłem sobie kontroler na FrontController ... 12.03.2006, 11:35:35
eMartio Analizując wszystkie wątki o MVC na tym forum zgłu... 13.03.2006, 14:17:03
Vengeance "Czy możecie zrobić malutkie podsumowanie... 13.03.2006, 15:38:35
hawk Cytat(Vengeance @ 2006-03-13 15:38:35)MVC mów... 13.03.2006, 16:27:47
aleksander @eMartio: http://php.pl/wortal/artykuly/php/archit... 13.03.2006, 16:44:31
eMartio Cytat(aleksander @ 2006-03-13 15:44:31)@eMart... 13.03.2006, 21:15:27
Prph Przeczytajcie na końcu!. Jak rozwiąć Widok?
W... 17.03.2006, 07:56:14 ![]() ![]() |
|
Aktualny czas: 14.01.2026 - 14:39 |