Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC] Kontroler - gdzie?
Kikert
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 15.09.2008

Ostrzeżenie: (0%)
-----


Witam,
uprzedzam, że przeczytałem temat przypięty wraz z odnośnikami i niewiele mi to pomogło - niestety.

Mam trzy pytania odnośnie tego wzorca - jeżeli tworzę aplikację web'ową, to:
1. Czy kontroler jest samym plikiem (index.php), czy dopiero plik główny go inicjuje?
2. Jak jest z widokiem? Czy HTML jest zwracany do kontrolera, czy do pliku głównego? (przy opcji, że kontroler trzeba wcześniej załączyć)
3. Czy widok jest załączany przez kontroler, czy przez plik główny? (również przy drugiej opcji)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WiruSSS
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 7
Dołączył: 3.02.2007

Ostrzeżenie: (0%)
-----


Witam

Przepraszam, że odświeżam wątek, ale to chyba jedyny w języku polskim, gdzie jest dość głęboko poruszony ten temat.

Mam straszny mętlik, przez te wszystkie niejasności naprawdę zastanawiam się, czy nie zaniechać próby zastosowania.

Ogólnie chciałem zacząć programować, nie wiem czy z wykorzystaniem poprawnego modelu MVC czy nie, ale chyba w sposób podobny jak większość osób pojmuje MVC czy pseudo-MVC.

Więc:

Mam sobie plik index.php (z tego co wyczytałem powinienem nazywać go bootsraper czy jakoś tak). Daruję sobie jednak te wszystkie ładnie brzmiące pojęcia, niezrozumiałe dla 90% ludzi chcących cokolwiek z tego wszystkiego zrozumieć, więc wybaczcie (IMG:style_emoticons/default/biggrin.gif) . Wracając do tego jak ja chciałbym tworzyć swoje aplikacje. Plik index.php, który w moim przypadku jest plikiem, gdzie są same includy.

Teraz chcąc być zgodny z MVC czy pseudo-MVC, tylko bardziej po swojemu (IMG:style_emoticons/default/tongue.gif) , tworzę sobie 3 foldery _views, _controllers, _models.
Jak już wcześniej pisałem zdaję sobie sprawę, że samo MVC jest różnie interpretowane ale jakąś koncepcję muszę przyjąć więc przyjąłem taką:

_views - zawiera czyste pliczki html z wstawionymi danymi z modeli
_models - zawiera klasy z samymi zapytaniami do bazy czy odwolaniami do plików textowych, obrazkowych czy jeszcze innych, gdzie znajduja się jakiekolwiek dane
_controllers - zawiera klasy sterujące danymi i wysyłające je do odpowiednich widoków.

Bardzo chciałbym trzymać się przyjętej przeze mnie ideologii, jednak już w zasadzie na początku napotkałem na dość prozaiczne problemy.

Weźmy sobie ot taki prosty przykład jak menu, ktore widok powinien pokazać w taki sposób:

  1. <nav>
  2. <ul>
  3. <li><a href="link.html">link</a></li>
  4. <li><a href="link2.html">link2</a></li>
  5. <li><a href="link3.html">link3</a></li>
  6. <li><a href="link4.html">link4</a></li>
  7. </ul>
  8. </nav>


i teraz co zrobić, żeby pętelka wyświetliła mi te wszystkie
  1. <li></li>
...widzę 3 wyjścia i nie wiem które powinienem zastosować, każde wg mnie albo odbiega od przyjętego przeze mnie wzorca, albo komplikuje niepotrzebnie i rozdrabnia widoki:

przypadek 1: wewalam część kontrolera do widoku (dokładnie kod pętli) jednak cały kod html dzięki temu jest w widoku
przypadek 2: pętelka zostaje w widoku, jednak część kodu html
  1. <li><a href=""></a></li>
musi się znaleźć w kontrolerze.
przypadek 3: tworzę osobny, malutki widok
  1. <li><a href=""></a></li>
i teraz kontroler przy każdym kroku pętli korzysta z tego widoku, po czym na koniec całość wysyła do widoku menu.

Wg mnie żadne z tych rozwiązań nie jest poprawne i ciekawi mnie czy jest jakieś inne wyjście, które pozostanie zgodne z przyjętym przeze mnie wzorcem.

Jest jeszcze 4 przyadek gdzie ten kawałek html jest w modelu ale to też wydaje mi się bez sensu.

Bardzo proszę napraowadźcie mnie jak prawidłowo powinno się to zrobić, po kilku dniach próby zrozumienia o co w tym wszystkim chodzi, coraz bardziej utwierdzam się w przekonaniu, że albo nie nadaję się na webmastera i nie powinienem się wogóle nim określać, albo po prostu coś tutaj nie do końca jest przemyślane, lub wogólę nie pojmuję idei rozdzielenia poszczególnych warstw.

PS. Przepraszam, za tak prozaiczny przykład jednak myślę, że zbyt dużo czytamy w artykułach "ciężkich" tekstów z trudnymi przykładami i dlatego też wiele osób rezygnuje z prób dostosowania się do jakichkolwiek ogólnie przyjętych standardów. Bardzo bym chciał, żeby pojawiało się więcej bardzo prostych przykładów opisanych prostym językiem, bez zbednych niezrozumiałych terminów. Jakby ktoś był tak miły i spróbował przedstawić swoją interpretację MVC, jednak na konkretnym bardzo prostym przykładzie, choćby wyswietlenia prostego menu to już wogóle było by bosko (IMG:style_emoticons/default/smile.gif)

dziękuję za uwagę i przepraszam jeśli moja wypowiedź nie jest na poziomie tego forum.

Ten post edytował WiruSSS 22.03.2012, 02:41:29
Go to the top of the page
+Quote Post

Posty w temacie
- Kikert   [MVC] Kontroler - gdzie?   5.02.2010, 13:54:28
- - bełdzio   ad1. index.php to bootstrap, czyli plik, który odp...   5.02.2010, 14:27:13
- - Kikert   OK, jeszcze jedno pytanie (ad2.) - jak to wygląda?...   5.02.2010, 14:59:44
- - blooregard   Widok juz nic nigdzie nie przekazuje, wywołuje jed...   5.02.2010, 15:05:55
- - Kikert   Czyli bootstrap inicjuje kontroler, kontroler modu...   5.02.2010, 15:07:36
- - Mephistofeles   Sprawdź sobie jak to robią popularne frameworki.   5.02.2010, 15:10:18
- - webdice   Masz model, kontroler i widok. Kontroler pobiera d...   5.02.2010, 15:12:59
- - Zyx   Kontroler nie przekazuje żadnych danych z modelu d...   5.02.2010, 15:19:20
- - blooregard   Kurczę, Zyx, teraz żes mnie zastrzelił http://ww...   5.02.2010, 15:30:47
- - Zyx   Mniej więcej właśnie o to chodzi. Architektura MVC...   5.02.2010, 16:51:15
- - Kikert   Ciekawa dyskusja się tutaj wywiązała, ale jako lai...   5.02.2010, 18:06:56
- - blooregard   @Zyx, dziękuję Ci bardzo za wyjaśnienie. W wolnej ...   5.02.2010, 22:53:03
- - batman   @Zyx Wszystko ładnie pięknie, ale to tylko teoria....   5.02.2010, 23:22:17
- - darko   To zacznijmy od tego, że nie ma jednej, a nawet je...   5.02.2010, 23:39:33
- - marcio   CytatKontroler nie przekazuje żadnych danych z mod...   6.02.2010, 00:07:11
- - Zyx   Rozmawiamy na poziomie aplikacji WWW w ogóle, pozi...   6.02.2010, 07:47:57
- - batman   ~Zyx Musisz pamiętać, że PHP != Java i impleme...   6.02.2010, 08:44:54
- - marcio   Cytat(batman @ 6.02.2010, 08:44:54 ) ...   6.02.2010, 12:17:13
- - Crozin   Ideę tego wzorca bardzo szybko i fajnie opisuje ob...   6.02.2010, 13:43:46
- - dr4ko   Pierwotnie MVC został określony tak jak przedstawi...   12.02.2010, 11:26:32
- - thek   Ja w swoich pracach najczęściej korzystam z modelu...   12.02.2010, 12:50:12
- - cojack   Cytat(Kikert @ 5.02.2010, 15:07:36 ) ...   12.02.2010, 19:48:43
- - Crozin   Cytat@Zyx nie zgadzam się z Twoją wizją MVC.Nie lu...   13.02.2010, 15:03:01
- - marcio   CytatNie lubię takich trochę personalnych docinków...   13.02.2010, 15:25:12
|- - -=Peter=-   Cytat(marcio @ 13.02.2010, 15:25:12 )...   13.02.2010, 16:08:41
- - Cysiaczek   @Zyx - Co do pobierania danych przez widok: http:/...   1.03.2010, 09:59:43
- - marcio   Jak dla mnie to kontroler powinien zawierac cala l...   1.03.2010, 12:20:46
- - WiruSSS   Witam Przepraszam, że odświeżam wątek, ale to chy...   22.03.2012, 02:29:50
- - viking   PHP jest stosowane w widoku do prostego wyświetlan...   22.03.2012, 17:55:09
- - thek   Najprostsze rozwiązanie? Kontroler przekazuje do w...   22.03.2012, 17:56:19
- - WiruSSS   tak myślałem robić jednak mam odczucie że taki spo...   22.03.2012, 23:37:55
- - viking   Tylko pamiętaj że szablony są i tak kompilowane do...   23.03.2012, 06:48:10


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 22:09