![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Czy któraś z klas: Model, View czy Controller powinna po sobie dziedziczyć ?
Pytam, bo widziałem przykłady bez dziedziczenia i z dziedziczeniem i wolę zapytać ![]() Drugim pytaniem, na które też znalazłem kilka odpowiedzi to przełączanie widoków. Uruchamiam index.php czyli ten podstawowy plik, a w nim uruchomienie kontrolera, który natomiast uruchamia model i widok... Fajnie, ale co dalej ? Na razie mam zrobione www.xx.pl/index.php?view=contact i ta zmienna view jest sprawdzana w switch/case i tam mam include odpowiedni widok i uruchomienie klasy danego widoku
W view mam stworzone jakieś menu np
Ale czy nie ma lepszego sposobu na to np przez pominięcie get czy coś ? Wiem, że jeszcze można ustawić routery na www.xx.pl/controller/action/param i wtedy tworzę kontrolery (ilość zależna od podstron), które uruchamiają różne widoki, ale to w formie takiego uproszczenia. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Pytam, bo widziałem przykłady [....] z dziedziczeniem Tak? A to ciekawe - mógłbyś napisać która po której dziedziczyła bo jestem bardzo ciekaw jak można wpaść na taki pomysł ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
http://www.phppatterns.com/docs/design/arc...troller_pattern
tutaj np masz class ProductController extends ProductView { http://r.je/mvc-in-php.html tutaj już nie ma dziedziczenia jako takiego. Ten post edytował Szymciosek 26.06.2012, 12:45:59 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) Po kodzie widać że jest to bardzooooo stary kod
2) M V C powinny być oddzielnymi rzeczami w żaden sposób nie dziedziczącymi po sobie. Widok to widok, a kontroler to kontroler. Równie dobrze można dziedziczyć obiekt samochód po obiekcie facet ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
A co z przełączaniem widoków ? Jakie są sposoby na to ?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
zdefiniuj "przełączanie widoków". Parsujesz url i na podstawie otrzymanych danych wybierasz kontroler i jeśli trzeba to widok i model.
-------------------- pretty as a shit.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Czyli całe parsowanie url musi się odbywać w index.php, a później wybieram kontroler ?
Na razie mam tak: index.php
controller.php
index_view.php
contact_view.php
Niby działa i chyba ok, modelu jeszcze nie robiłem, bo dopiero zaczynam z mvc coś więcej. Chodzi mi o to czy jest inna metoda na to niż:
Pisałem wcześniej o routerach, które mogę ustawić na kontrolery, ale nie umiem tego jeszcze. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że źle pojmujesz MVC. MVC to sama idea dzielenia kodu na warstwy, to o co Ty pytasz to już działanie małego frameworka. Poza tym, nie identyfikuj (pojedynczych) klas z konkretnymi warstwami, bo często jest to dużo bardziej skomplikowane. Przeszukaj forum pod kątem hasła "framework" a gwarantuje, że znajdziesz odpowiedzi na swoje pytania bo już dużo takich tematów było
![]() -------------------- pretty as a shit.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Czyli co ? MVC nie nadaje się do takich rzeczy jak przełączanie podstron i później dodanie jakiegoś działania czy coś ?
Nie zrozumiałem tego: ". Poza tym, nie identyfikuj (pojedynczych) klas z konkretnymi warstwami, bo często jest to dużo bardziej skomplikowane." Framework frameworkiem, samo mvc też po coś zostało stworzone. Czyli na razie są tylko 2 metody "przełączania" ? $_GET i routery ? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czyli całe parsowanie url musi się odbywać w index.php, a później wybieram kontroler ? FW budujesz? To przydałaby się klasa do parsowania URI, oraz Router który uruchomi odpowiedni kontroler. MVC wygląda mniej więcej tak, że ładujesz zawsze jako pierwszy kontroler, w nim możesz/lub nie odwołać się do modelu, dane z modelu możesz/lub nie wysłać do widoku, a czym będzie i co robił sam widok to już zależy od Ciebie. Poszukaj na forum w dziale "PHP" było dużo o tym, jak i w pod forum o oop. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Nie buduję FW
![]() W ActionScript3.0 wyglądało to tak, że za pomocą switch/case wysyłałem instrukcje o zmienia widoku i stary widok był wyrzucany, a ładowany był nowy. Z tym, że w php problemem jest link. Ciężko mi się dogadać coś w tym temacie :/ |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak, GET to najprostsze wyjście. Jednak to co prezentujesz, to mi za bardzo na MVC nie wygląda, bo gdzie masz tam model i w widoku tworzysz menu? No, można i tak, jak wolisz ;D A z tym switch, to do b.małych stron.
Ten post edytował !*! 26.06.2012, 14:02:05 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
Czyli co ? MVC nie nadaje się do takich rzeczy jak przełączanie podstron i później dodanie jakiegoś działania czy coś ? Nie zrozumiałem tego: ". Poza tym, nie identyfikuj (pojedynczych) klas z konkretnymi warstwami, bo często jest to dużo bardziej skomplikowane." Framework frameworkiem, samo mvc też po coś zostało stworzone. Czyli na razie są tylko 2 metody "przełączania" ? $_GET i routery ? MVC zakłada (upraszczając) oddzielenie warstwy logiki od warstwy prezentacji - tyle, nie myl MVC z frameworkiem. Co do "dwóch metod przełączania", zawsze możesz linkować do osobnych plików (żart, nie rób tego ![]() Ten post edytował krzywy36 26.06.2012, 14:03:22 -------------------- pretty as a shit.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Hmm, $_GET i routery, nie rozumiem za bardzo, bo router (czy tam klasa parsująca URL, jakkolwiek ją nazwiemy) i tak działa na $_GET, a raczej na całym urlu i jest to najlepsza metoda Router ładuje odpowiedni kontroler, na bazie odebranego URI. Całe sterowanie może być oparte na GET, o ile tak to zaimplementujesz. Chociaż nie uważam aby index.php?controller=art&method=xxx¶m=23 był taki rewelacyjny, ale to już inna kwestia. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
!*!, gdzie mam w takim razie tworzyć menu ? Piszesz, że nie mam modelu i menu tworzę w widoku, a za chwilę jak tam chcę, więc o co chodzi ?
krzywy36, $_GET, a chodziło mi z routerami o uproszczenie linku żeby uruchamiało mi od razu kontroler. Mówiłem, że modelu na razie nie robiłem, bo nie korzystam na razie z danych jako tako. Szukałem jakichś tutoriali, przykładów o mvc, ale mało coś tego jak DOKŁADNIE z tego korzystać. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie znajdziesz dokładnego opisu MVC, bo MVC jest tym jak sam sobie to zinterpretujesz. Menu tworzysz w widoku, ale dane do niego pobierasz z modelu (więc, ok nie doczytałem;)).
Ten post edytował !*! 26.06.2012, 14:17:41 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
To może chociaż jakieś przykłady z życia wzięte ? Wiem, że na prostą stronę MVC to raczej dużo, ale w przyszłości chciałbym coś dodać, może panel admina czy coś.
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
To widziałem w sumie, ale czy to się jakoś nadaje do prostej strony z 5 podstronami ?
No i tutaj jest tylko odpalenie kontrolera, który dalej operuje resztą, a ja bardziej prosiłbym o coś właśnie na przykładzie 2-3 widoków |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat To widziałem w sumie, ale czy to się jakoś nadaje do prostej strony z 5 podstronami ? W takiej formie jaką masz teraz? Nie. Cytat No i tutaj jest tylko odpalenie kontrolera, który dalej operuje resztą, a ja bardziej prosiłbym o coś właśnie na przykładzie 2-3 widoków Na tym polega MVC, kontroler steruje wszystkim i to od niego ma zależeć jaki widok ma być wczytany. Czyli u Ciebie podstrony, mogą być jakimś parametrem w metodzie kontrolera, która uruchamia konkretny widok. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 02:20 |