Poprawnosc kodu wzorca MVC, i gdzie pisac widok? |
Poprawnosc kodu wzorca MVC, i gdzie pisac widok? |
20.02.2014, 12:50:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
Witam. Zacząłem naukę o klasach i wzorcu MVC. Napisałem jako pierwsze takie "coś" w formie ćwiczenia. Prosiłbym o sprawdzenie tego kodu i o podpowiedzenie mi, czy poprawnie te klasy, metody oraz kod w nich, napisałem, i gdzie tworzy się widok? Tak jak teraz to zrobiłem w klasie View z wykorzystaniem switch'y, czy powinno się includować plik html z widokiem? Z góry dziękuję za pomoc.
index.php
classes.php
Ten post edytował adrianpl20 20.02.2014, 12:57:07 |
|
|
20.02.2014, 12:54:49
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6297 Dołączył: 27.12.2004 |
Do kodu PHP uzywa sie BBCODE PHP. Prosze poprawic.
Klasa View nie powinna miec w sobie calego kodu HTML. Klasa View ma wczytywac odpowiedni plik z widokiem -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2014, 12:58:50
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
Poprawione.
Okej plik, rozumiem, a poza tym wszystko jest w porządku? Na innym forum, ktoś mi napisał, że ten kod ma mało wspólnego z MVC i że można/łatwiej użyć jeszcze FrontControllera (sprawdzałem na wiki, to dodatkowy wzorzec chyba do uzycia z MVC), czy jest on uzywany, potrzebny? Ten post edytował adrianpl20 20.02.2014, 13:01:19 |
|
|
20.02.2014, 13:26:27
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
22.02.2014, 14:38:47
Post
#5
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
Coś tam "namazałem" od nowa, prosiłbym o sprawdzenie struktury i kodu (po maks. kilkanascie linijek w pliku wiec nie duzo) http://www.sendspace.com/file/bn7n5f Z góry dziękuję.
|
|
|
22.02.2014, 18:18:33
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) |
Pod tym linkiem, który teraz podałeś jest jakaś dziwna strona z milionem reklam, a gdzie kod?
-------------------- scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
|
|
|
22.02.2014, 18:46:23
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
22.02.2014, 19:38:21
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) |
no bez jaj Panowie, niedługo zaczną na chomiki wrzucać albo inne cuda, przecież to nie jest biblioteka zenda, żeby nie można było pokolorować na forum
-------------------- scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
|
|
|
23.02.2014, 00:17:26
Post
#9
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
Nie chciałem tworzyć w kij długiego postu, pomyslałem że tak bedzie łatwiej przejrzeć. Proszę o pomoc, czekam juz kilka dni i to mnie blokuje przed dalszą nauką...
Ten post edytował adrianpl20 23.02.2014, 00:18:46 |
|
|
23.02.2014, 00:31:52
Post
#10
|
|
Grupa: Zarejestrowani Postów: 417 Pomógł: 44 Dołączył: 23.06.2011 Ostrzeżenie: (0%) |
To do cholery wstaw kod, bo nikt tu lewych paczek nie chce ściągać...
|
|
|
23.02.2014, 00:39:12
Post
#11
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
Okej, proszę, kod:
struktura katalogów: /controllers/ /views/ /models/ /index.php /controllers/controller.php
/controllers/index.php
/controllers/kontakt.php
/views/view.php
/views/head.php
/views/footer.php
/views/index.php
/views/kontakt.php
/models/ brak plików /index.php
Ten post edytował adrianpl20 23.02.2014, 11:53:11 |
|
|
23.02.2014, 00:52:21
Post
#12
|
|
Grupa: Zarejestrowani Postów: 417 Pomógł: 44 Dołączył: 23.06.2011 Ostrzeżenie: (0%) |
jak pozamykasz wszystko w [/php] a nie [/code] to będzie idealnie.
Ogólnie interpretacja tego jak powinien wyglądać wzorzec MVC jest różna. Ile frameworków tyle interpretacji. W jednych kontroler posiada xxxx linijek kodu a w innych xx z tym że xxxx linijek jest zawartych w modelu. Oólnie to wygląda tak (łopatologicznie tak jak tylko potrafię) Kontroler - jest czymś w rodzaju pośrednika, zarządza logiką czyli tym "CO JAK GDZIE" Model - to jest nasze "COŚ" czyli najczęściej wyniki jakiś zapytań z bazy które później chcemy umieścić w widoku. No i widok jest to sposób prezentacji. Ale to tak trochę wstępnie... W każdym razie staraj się robić tak (mówię trochę przyszłościowo), że po zmianie czegoś w modelu, nie jesteś zmuszony do zmiany czegoś w kontrolerze. Staraj się separować te 3 rzeczy, jak tylko najbardziej potrafisz. Rób tak, aby każda z nich była niezależna. Moim zdaniem niepotrzebnie już pomieszałeś tutaj widok z kontrolerem (metoda loadView). Kombinuj tak, żebyś zasobami widoku operował W WIDOKU. Czyli jeśli już zdecydowałeś się na taką formę prezentacji treści, postaraj się, żeby to się odbywało mw tak:
moim zdaniem powinieneś z miejsca pomyśleć o tym jak stworzyć coś na wzór layoutu i "ładowarki" do niego. Ale to wszystko ustalasz w widoku Ten post edytował Posio 23.02.2014, 00:52:49 |
|
|
25.02.2014, 00:43:22
Post
#13
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
ok, poprawiłem, przeniosłem metodę loadView do widoku views/view.php
teraz te zmienione pliki wyglądają tak, prawidłowo już?: views/view.php
controllers/controller.php
controllers/index.php
controllers/kontakt.php
|
|
|
25.02.2014, 08:26:13
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Jak już masz controller.php i świeci pustkami, to możesz wykorzystać np do tego, żeby nie walić w każdym kontrolerze static, tylko przekazywać sobie obiekt od razu do kontrolera:
|
|
|
25.02.2014, 08:40:52
Post
#15
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) |
To z tym chciałeś pisać tego facebooka O_O ?
Poza tym, co napisał @Damonsson, takie coś: Cytat(adrianpl20)
...jest głośnym wołaniem o pomstę do nieba. To widok ma decydować o tym, co wyświetla. Ponadto nie ma możliwości choćby zarządzania katalogiem z widokami. Ten post edytował pyro 25.02.2014, 08:45:36 -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
25.02.2014, 09:02:09
Post
#16
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
Metoda loadView przecież jest w widoku, więc nie bardzo rozumiem o co innego chodzi, może o utworzenie osobnych metod setHeader, setFooter i wywołanie ich w metodzie loadView zamiast require header.php i require footer.php ? I o co chodzi z zarządzaniem katalogiem z widokokami?
Ten post edytował adrianpl20 25.02.2014, 09:02:34 |
|
|
25.02.2014, 09:07:54
Post
#17
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) |
Metoda loadView przecież jest w widoku, więc nie bardzo rozumiem o co innego chodzi Nie jest w widoku, jest w klasie ładującej widok. nie bardzo rozumiem o co innego chodzi, może o utworzenie osobnych metod setHeader, setFooter i wywołanie ich w metodzie loadView zamiast require header.php i require footer.php ? To by była zmiana ze złego... na złe. I o co chodzi z zarządzaniem katalogiem z widokokami? Co jak będę chciał użyć header2.php, zamiast header.php? Albo załadować widok z vendor/plugin/views ? -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
25.02.2014, 09:10:18
Post
#18
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) |
założyłem, że header zawsze będzie taki sam na każdej podstronie. Więc ręcznie w każdym widoku trzeba będzie wpisywać ładowanie headera np w __construct ?
|
|
|
25.02.2014, 09:11:41
Post
#19
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) |
założyłem, że header zawsze będzie taki sam na każdej podstronie. Więc ręcznie w każdym widoku trzeba będzie wpisywać ładowanie headera np w __construct ? Nie powinno się nic zakładać, tylko zrobić tak, żeby w razie potrzeby dało się zmienić. -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
25.02.2014, 09:28:40
Post
#20
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Cytat Więc ręcznie w każdym widoku trzeba będzie wpisywać ładowanie headera np w __construct Niekoniecznie, możesz sobie wywoływać defaultowo tak jak masz, ale dodać do tego jeszcze parametry jakieś, które jeśli dodasz to wywołają inny head/foot jaki podasz w parametrach. Ten post edytował Damonsson 25.02.2014, 09:29:31 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 10:48 |