![]() |
![]() |
![]()
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). |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
W takiej formie jaką masz teraz? Nie. To w jakiej formie ? Mógłbyś to jakoś zaprezentować, nie proszę o gotowce tylko krótki opis, a ja później dam to do oceny. Czyli u Ciebie podstrony, mogą być jakimś parametrem w metodzie kontrolera, która uruchamia konkretny widok. Czyli do kontrolera mogę przekazać poprzez np __construct zmienną jakiWidok i wtedy na podstawie tego kontroler dalej poleci ze wszystkim, ładując wszystko co trzeba, ale wtedy gdzie wybór widoku i przekazanie do kontrolera ? W index ? Gdzie dokładniej ? Myślałem, że to wszystko będzie bardziej proste... Ten post edytował Szymciosek 26.06.2012, 15:14:54 |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Widzisz, za bardzo kombinujesz i nie widzisz ideii MVC. PHP samo w sobie jako tako też jest drętwe... Zacznijmy od tego że bez jakiegoś FW dobrze tego nie zrobisz, przynajmniej tak mi się wydaje. Aby to miało ręce i nogi, wszystkie przekierowania powinny iść przez index.php
Kontrolerów w aplikacji może być kilka, nie musisz ograniczyć się do jednego (a w zasadzie nie powinieneś). Zakładając że chcesz wczytać jakieś strony, odpalasz kontroler Pages, z jego metodą getPage
To mniej więcej tak powinno być.Aha, i w widoku pobierasz tą tablicę i tam ją wyświetlasz w pętli, zhtml czy co tam chcesz. Ten post edytował !*! 26.06.2012, 15:24: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
#23
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 28.11.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Musisz wybrać inną logikę całej tej aplikacji, bo obecnie brniesz w złą stronę:
1. Jeśli ma być zaledwie 2-3 strony (które w dodatku mają być na sztywno ustawione) to imho nie opłaca się przerabiać tutaj wzorca MVC na wszelkie i odbiegające od niego formy, tylko wybranie czegokolwiek innego bardziej pasującego. 2. Jeśli zaś stwierdzisz, że później będziesz chciał coś powiększyć, dodać podstrony, to wtedy robisz sobie sam problem, ponieważ wszystko zacząłeś tworzyć na sztywno. W cale nie powiedziane jest, że musisz korzystać z takich wzorców (z trzema warstwami), a nie innych skoro możesz zrobić aplikację w oparciu o "dwie warstwy" - Jedną odpowiedzialną za logikę, a drugą za wszelkie możliwe dane i informacje. Istnieje wiele MVC - podobnych wzorców, które mogą o wiele bardziej przydać się do twojej sytuacji. |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Na FW myślę, że za wcześnie jeszcze... Brałem się kilka dni temu za Kohana, ale właśnie trochę poległem na MVC, a do tego ta dokumentacja jest do niczego i mało artykułów na ten temat.
Co do Twojej klasy Pages to jak mam przekazać do niej title ? I skąd ma wiedzieć co za View() ma być odpalone ? Myślałem, że MVC działa na zasadzie właśnie: Index > Kontroler > Widok > Akcja > Kontroler > Model > Kontroler > Widok... Czyli index uruchamia kontroler, a ten uruchamia widok (chyba, że potrzebny jest od razu model), następnie odpalany jest widok, którym użytkownik może wykonać jakąś akcję np wyświetlenie czegoś, więc Widok poprzez Akcję łączy się z kontrolerem, ten pobiera dane z kontrolera i znowu wysyła je do widoku, przy czym widok jest aktualizowany. Co to jest render() ? Musisz wybrać inną logikę całej tej aplikacji, bo obecnie brniesz w złą stronę: 1. Jeśli ma być zaledwie 2-3 strony (które w dodatku mają być na sztywno ustawione) to imho nie opłaca się przerabiać tutaj wzorca MVC na wszelkie i odbiegające od niego formy, tylko wybranie czegokolwiek innego bardziej pasującego. 2. Jeśli zaś stwierdzisz, że później będziesz chciał coś powiększyć, dodać podstrony, to wtedy robisz sobie sam problem, ponieważ wszystko zacząłeś tworzyć na sztywno. W cale nie powiedziane jest, że musisz korzystać z takich wzorców (z trzema warstwami), a nie innych skoro możesz zrobić aplikację w oparciu o "dwie warstwy" - Jedną odpowiedzialną za logikę, a drugą za wszelkie możliwe dane i informacje. Istnieje wiele MVC - podobnych wzorców, które mogą o wiele bardziej przydać się do twojej sytuacji. Np jakie inne wzorce ? Nie chcę dużego FW, chcę po prostu stworzyć sobie stronę, ale nie chciałem właśnie mieć jej na sztywno jeśli masz tutaj na myśli niezmienianie treści itd, chce mieć dostęp do tego w prosty sposób, a w przyszłości stworzyć panel, w którym będę mógł sam po zalogowaniu zmieniać treści, zdjęcia itd... |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 28.11.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Np jakie inne wzorce ? Nie chcę dużego FW, chcę po prostu stworzyć sobie stronę, ale nie chciałem właśnie mieć jej na sztywno jeśli masz tutaj na myśli niezmienianie treści itd, chce mieć dostęp do tego w prosty sposób, a w przyszłości stworzyć panel, w którym będę mógł sam po zalogowaniu zmieniać treści, zdjęcia itd... Nie miałem na myśli żadnego frameworka, tylko wzorce. WZORZEC != FRAMEWORK Wzorców jest od cholery za przeproszeniem: MVP (Tutaj klasyczny dla wielu frameworków w php), MVVM, HMVC (Znany z Kohany 3). Na sztywno, miałem na myśli z góry ustalone widoki i kontrolery. Z ostatniej części twojego postu wynika, że chcesz zbudować prosty CMS, w takim razie nikt nie każe korzystać z full-stack frameworka, ponieważ masz też coś takiego jak chociażby Silex. Ten post edytował Dipter 26.06.2012, 15:38:55 |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz sobie CodeIgniter, chyba najprostszy FW jaki powstał, jeśli w nim nie zrozumiesz MVC, to odpuść to sobie na jakiś czas.
render() - to tylko przykładowa opcja która pokazuje widok. Cytat Myślałem, że MVC działa na zasadzie właśnie: Index > Kontroler > Widok > Akcja > Kontroler > Model > Kontroler > Widok... Czyli index uruchamia kontroler, a ten uruchamia widok (chyba, że potrzebny jest od razu model), następnie odpalany jest widok, którym użytkownik może wykonać jakąś akcję np wyświetlenie czegoś, więc Widok poprzez Akcję łączy się z kontrolerem, ten pobiera dane z kontrolera i znowu wysyła je do widoku, przy czym widok jest aktualizowany. Wszytkio kierujesz na index.php (.htacces). Na podstawie URI, Router (lub jak nie masz, to na podstawie GET, ale to i tak nie będzie dobre) uruchamia kontroler. Cytat Co do Twojej klasy Pages to jak mam przekazać do niej title ? I skąd ma wiedzieć co za View() ma być odpalone ? $title to własnie parametr jaki przekazujesz do metody kontrolera, np w linku index.php?wczytajstrone=tytul tylko musisz parsować te dane z URI (paska adresu) żeby Router wiedział że ma odpalić ten kontroler z tym parametrem czyli może być to tak /page/show/tytul dla wersji z GET będzie to index.php?controller=pages&method=show¶m=tytul I tak jak napisał poprzednik MVC != framework. MVC zostało już opisane tu całkowicie, ale jego implementacja nie jest prosta w PHP i potrzebny jest jakiś FW, bo ma w sobie odpowiednie funkcje. Ten post edytował !*! 26.06.2012, 15:43:12 -------------------- 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
#27
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Na razie zostańmy przy samej czystej stronie z treścią, a panel to przyszłość.
Więc co powinien mieć u mnie index ? Uruchomienie powiedzmy Default_Controller ? A w nim uruchomienie podstawowego widoku, który zawiera w sobie menu i to co ma mieć strona index ? Klikając w menu przenosi mnie na www.xx.pl/index.pl?view=contact i tym samym znowu jest uruchamiany Default_Controller, ale już z innym widokiem tak ? |
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Implementacja MVC do takich prostych rzeczy jest po prostu nieopłacalna. bo co z tego że odpalisz Default_Controller jak nie jesteś w stanie go zmienić, przecież każda z podstron może mieć inny kontroler.
www.xx.pl/index.pl?view=contact view to widok? To źle, bo w linku nie ma być danych o modelu czy widoku. Mają być tylko dane przekazane do kontrolera. Ten post edytował !*! 26.06.2012, 15:47:53 -------------------- 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
#29
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Tak view to widok, a o czym pisaliśmy na początku tematu ? O $_GET, który przekazuje co ma być ładowane, a kontroler to odbiera.
Jak mam zacząć podstawy ? Od najprostszych rzeczy na przykładach oczywiście wszystko do coraz większych aplikacji, które mogą wykorzystywać MVC. Chciałem stworzyć sobie stronę i nie chciałem za bardzo pisać wszystkiego w plikach index.php gallery.php contact.php tylko chciałem ładnie spróbować wykorzystać do tego celu właśnie MVC, wiem, że to mała strona jak na MVC, ale co mam od razu skakać do jakiegoś wielkiego serwisu budując go na MVC ? |
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
GEt nie może być widokiem, ani modelem. Czytaj uważnie. Może jedynie przekazywać zmienne do kontrolera np. tytył podstorny jaka ma wczytać Wsadź ten kontroler Page do index.php i odpal, tylko $title podaj $_GET['title']
Ten post edytował !*! 26.06.2012, 16:01:43 -------------------- 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
#31
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś jakiś przykład całego mvc dać ?
Skąd Pages wie co to jest new View() ? czy to po prostu tak nazwałeś ? |
|
|
![]()
Post
#32
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pages to kontroler, View to przykładowo Twoja klasa widoku.
-------------------- 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
#33
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Tak ? Tylko co dalej ? Ten post edytował Szymciosek 26.06.2012, 16:21:09 |
|
|
![]()
Post
#34
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
popatrz na ten kod i zastanów się czy logika programu została oddzielona od warstwy prezentacji
![]() Zrobie Ci małe howto, żebyś mógł to zrozumieć: załóżmy, że mamy adres postaci Kod localhost/index.php?url=kontroler/akcja/param1/param2/... idąc dalej, załóżmy, że chcemy wyświetlić newsa o konkretnym id, w tym wypadku nasz adres będzie wyglądał tak: Kod localhost/index.php?url=news/pokaz/45 czyli, nasz kontroler to "news", nasza akcja to "pokaz" a nasz parametr (id) to 45. W index.php parsujesz url, aby wyciągnąć kontroler, akcję i parametry po czym uruchamiasz to np. tak:
W tym wypadku klasa naszego kontrolera powinna wyglądać tak:
od razu mówię, że jest to tylko PRZYKŁADOWA implementacja, dodatkowo pisana z palca, modelu nawet nie pisze bo bedzie tam tylko prosta funkcja pobierajaca newsa na podstawie id a widok to znowu kwestia implementacji ![]() Ten post edytował krzywy36 26.06.2012, 17:02:15 -------------------- pretty as a shit.
|
|
|
![]()
Post
#35
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Krzywy, próbuję to ogarnąć, dopiero teraz, ale jak zrobić automatyczne logowanie danej klasy ? tzn jest coś takiego jak __autoload, ale czy to będzie dobre w index gdzieś ? Bo bez sensu jest robienie include wszystkich kontrolerów, a później ich wybieranie...
|
|
|
![]()
Post
#36
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Tak ? Tylko co dalej ? A gdzie odwołałeś się do metody getPages, podając jej parametr? Cytat jest coś takiego jak __autoload Poczytaj o SPL (spl_autoload_register), są też gotowe klasy do tego. Ten post edytował !*! 26.06.2012, 18:36:51 -------------------- 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
#37
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie, siadłem i stworzyłem coś takiego: http://dl.dropbox.com/u/21239599/mvc3.rar
Czy teraz jest jakoś lepiej ? |
|
|
![]()
Post
#38
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
tak na szybko:
ten elseif się nigdy nie wykona ![]() Ten post edytował krzywy36 26.06.2012, 19:44:16 -------------------- pretty as a shit.
|
|
|
![]()
Post
#39
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
A reszta jak ? Dobrze już to by było takie coś ?
Czemu ten elseif się nie wykona ? Co masz na myśli z modelami i widokami ? Przecież każdy kontroler steruje powiedzmy swoją grupą widoków. |
|
|
![]()
Post
#40
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
dziwnie widoki obsługujesz, ale to juz wizja programisty
![]() Co do elseif, nawet jeśli będzie ustawiona akcja i parametr to i tak wykona się pierwszy if, zamień warunki kolejnością i powinno być dobrze. Trzecie pytanie - chodzi mi o to, że możesz tak napisać funkcję autoLoader, żebyś sam nic nie musiał includeowac. Ten post edytował krzywy36 26.06.2012, 19:58:48 -------------------- pretty as a shit.
|
|
|
![]()
Post
#41
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Co do Twojego template, to też widziałem takie klasy, muszę się im przyjrzeć, to działa chyba na zasadzie głównego szablonu i ładowania widoków (treści) do odpowiednich miejsc w szablonie ?
EDIT: elseif już widzę, bo zawsze znajdzie mi url_action, jeśli podam już url_param Pomyślę nad funkcją autoloadera Może ktoś to ocenić ? Ten post edytował Szymciosek 26.06.2012, 20:03:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:03 |