Zadejte hledaný výraz...

Dodržení logiky MVC v PHP aplikaci

David Musil
verified
rating uzivatele
(68 hodnocení)
2. 12. 2017 12:59:43
Ahoj,
před pár dny jsem tu pokládal dotaz ohledně validace form polí ve frameworku CodeIgniter. Pokračuji dále v učení a prozkoumávání již předdefinovaných tříd.
Zdá se mi, že většina Controllerů je dost zaplněná funkcemi, které bych si dokázal představit až v Modelu. Kde je ta hranice? Přijde mi, že například validace form polí po odeslání formu, hashování hesla, zjištění IP adresy, by mohlo být až v Modelu.
Nebo je to opravdu tak, že v Controlleru opravdu zpracuji odeslaná data z formuláře, napíšu všechny validace a pravidla a až pak posílám tato ošetřená a upravená data do Modelu a ten jen ukládá do DB?
Dosud jsem pracoval pouze s malým frameworkem a tam opravdu byla většina těchto funkcí až v modelu a Controller byl vcelku čistý, co se týkalo množství funkcí.
2. 12. 2017 12:59:43
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315296
Gabonator
verified
rating uzivatele
(1 hodnocení)
2. 12. 2017 14:46:13
Podľa mňa controller by mal byť takmer prázdny. Je to akási križovatka. Mal by prijímať request, ale samotnú validáciu riešim v samostatnom class.
ďalej data zapisujem zvyčajne až v modely. Dokonca aj model detikujem, na dve časti, prvá sú relationship gettery sa settery. a potom presenter.
2. 12. 2017 14:46:13
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315295
Bogdan
verified
rating uzivatele
(1 hodnocení)
2. 12. 2017 15:07:29
Pokud vím dobře tak Model by měl sloužit pro praci s DB(get, set, atd...). Controller pro vše ostatní kromě html(formuláře, validace, hashe, atd..).
Dělám v Symfony a Laravelu.
2. 12. 2017 15:07:29
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315294
hm
verified
rating uzivatele
(20 hodnocení)
3. 12. 2017 19:03:17
Model slouzi k udrzovani dat, view k jejich zobrazovani a controller ridi interakci modelu a viewu... Osobne bych umistil validaci spravnosti dat do modelu, v controlleru tuhle validaci zavolal a vyhodnotil vystup... Dava to ve smyslu MVC archtektury asi nejvetsi smysl...
Kazdopadne kazdy to dela jinak, dokonce i kazdy framework to dela jinak... Nejde rict co je nejlepsi, melo by ti to davat smysl a melo by to byt jednoduche, udrzitelne, melo by to nejak dbat na datamodel ve smyslu, ze kdyz upravis treba strukturu nejaky tabulky, nebudes muset menit deset mist kvuli tomu, ale zmenis to jen na jendom miste...
3. 12. 2017 19:03:17
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315293
navay
verified
rating uzivatele
3. 12. 2017 23:32:57
Zdá se mi, že většina Controllerů je dost zaplněná funkcemi, které bych si dokázal představit až v Modelu. Kde je ta hranice? Přijde mi, že například validace form polí po odeslání formu, hashování hesla, zjištění IP adresy, by mohlo být až v Modelu.
Nebo je to opravdu tak, že v Controlleru opravdu zpracuji odeslaná data z formuláře, napíšu všechny validace a pravidla a až pak posílám tato ošetřená a upravená data do Modelu a ten jen ukládá do DB?
I to je v CI resitelne v modelech, jejichz metody s pravidly pak lze volat v controlleru, viz Callable: http://www.codeigniter.com/user_guide/libraries/form_validation.html#callable-use-anything-as-a-rule
3. 12. 2017 23:32:57
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315292
David Musil
verified
rating uzivatele
(68 hodnocení)
4. 12. 2017 00:51:50
Děkuji moc za odpovědi.
4. 12. 2017 00:51:50
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315291
Filip T.
verified
rating uzivatele
(2 hodnocení)
6. 12. 2017 17:05:51
Z mého pohledu validace fomuláře nepatří do modelu. V modelu validuji pouze data jemu patřící, resp. tabulce v DB.
* Pokud budu mít formulář s přidáním uživatele a jeho oprávnění, kam vložíte validaci? Do modelu "user" nebo "role"? ( Zde by většina lidí zase validovala v Controlleru, takže to není tak jednoduché )
Asi je potřeba rozlišit co validujete, ale dle mého názoru, by validační fce formuláře měla mít svou vlastní "továrnu" -> po zvalidování již rozposílám data jednotlivým modelům a ty si už data zvalidují/upraví dle potřeby.
6. 12. 2017 17:05:51
https://webtrh.cz/diskuse/dodrzeni-logiky-mvc-v-php-aplikaci/#reply1315290
Pro odpověď se přihlašte.
Přihlásit