Portál AbcLinuxu, 5. května 2025 21:19

Dotaz: Objasnění MVC v PHP

21.4.2014 13:45 Lubosh
Objasnění MVC v PHP
Přečteno: 509×
Odpovědět | Admin
Ahoj, pročítám něco ohledně MVC a nějak nechápu pár věcí, třeba jakou má plnit funkci třída Controller, proč mám volat metody v Controller-u které volají metody v Module, to můžu přece rovnou volat ty metody v Module, ne? Proč mám plnit proměné v Module které stejně mám vracet do Controlleru. Může mi to prosím někdo objasnit? Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

pavlix avatar 21.4.2014 17:04 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přesně tento typ dotazů se na stack overflow zavírá jako nevhodný dotaz. Autor zjevně ještě nevěnoval problematice dostatek času ačkoliv je na toto téma dostupný dostatek literatury i online zdrojů a nenaučil se ještě ani správně napsat klíčové termíny. Namísto toho chce, aby mu tu někdo v komentářích nahrazoval dostupnou literaturu a nikoliv jen pomáhal s pochopením problematických částí.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
21.4.2014 17:12 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nauč se číst. Není to Module, ale Model. Stejně jako Controller volá Model, tak i Viewer volá Model. Model je tedy jakýmsi centrálním prvkem. Je to prostě taková struktura, která se hodí na řešení určitého typu úloh.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 28.4.2014 22:17 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Model není centrální prvek. Centrání je Controller. Model je takový horký brambor, který si ostatní komponenty přehazují.
Hello world ! Segmentation fault (core dumped)
28.4.2014 22:52 potato
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Model je centrální prvek. Representuje informaci/data, které nesou význam, tedy znamenají něco i mimo konkrétní UI. Ostatní prvky jsou serepetičky a hejblátka omezená významem na ono konkrétní UI.
28.4.2014 23:58 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
No to raději nějak takto:

Model je centrální prvek obsahu/informace, View je centrální prvek reprezentace/vzhledu a Controler je centrální prvek aplikace.

V obecné rovině souhlasím s tím, že centrálním prvkem je Controler, protože se u MVC jedná o návrhový model či architekturu aplikací - no a Contoler dělá aplikační logiku tedy je centrálním a řídícím prvkem aplikace.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.4.2014 00:01 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
V Modelu je zase doménová logika. Model je tedy centrálním prvkem, ke kterému se modlí Controller i Viewer.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
29.4.2014 00:05 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
No jestli se Controler a případně i Viewer k Modelu modlí - potěš-bůh.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.4.2014 00:27 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP

Před spaním tedy jinak, MVC žádný centrální prvek nemá, má tři centrální prvky(skupiny prvků) přesně odpovědné za svou oblast.

Ale pokud by mě někdo nutil ukázat na centrální prvek, ukázal bych na Controler z již popsaného důvodu (MVC je návrhový vzor aplikace a aplikační logiku dělá Controler a kdyby mě někdo dál nutil na druhé místo dal View protože dělá „vzhled“ aplikace…).

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
28.4.2014 23:06 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Jak může být centrálním prvkem Controller, když nemá vazbu na ostatní komponenty, např. na Viewer? Model v sobě drží data a umí s nimi pracovat přes různá rozhraní, je tedy centrálním prvkem v MVC.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
28.4.2014 23:48 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Sám jsi se svou logikou popřel, pokud nemůže být centrálním prvkem Controler, protože nemá vazbu na ostatní komponenty (což může být částečně pravda, ale nemusí), tak ale model nemá vazbu na nic (neměl by mít), tedy nemůže být centrálním prvkem.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
28.4.2014 23:58 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Až přijdeš na to, jak je to správně podle tvé logiky, tak nám dej vědět. Ať se také poučíme.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
29.4.2014 00:01 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Viz výše, tady jsem jen reagoval na, dle mého, zásadní rozpor těch dvou vět.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
22.4.2014 11:21 Nobody
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co ma ten program vlastne delat?
22.4.2014 17:44 Sten
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi jde jen o velmi jednoduché modely, tam potom controller volá rovnou model, protože není, co víc by dělal. U složitějších může controller validovat požadavky nebo třeba volat víc metod na více modelech (typicky N:M mapování v SQL). A odděluje se to proto, aby to bylo konzistentní u jednoduchých i složitějších modelů.
23.4.2014 09:07 Zdenek
Rozbalit Rozbalit vše Re: Objasnění MVC v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
doporucuji pecist tazateli toto http://www.zdrojak.cz/clanky/uvod-do-architektury-mvc/

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.