MVC a předávání do view rubrika: Programování: PHP

1 skybedy
položil/-a 11.10.2016
 
upravil/-a 11.10.2016

Hraju si trochu s MVC, pomáhám si přitom Phalconem a mám následující dilema.
Dejme tomu, že potřebuju z databázových dat vytvořit html tabulku, nebo spíše více tabulek a data do nich se cpou cyklicky z několika databázových dotazů za sebou.
Nikdy jsem neprogramoval profesionálně v týmu, takže jsem to dříve prasil způsobem, že jsem to přímo v cyklech databázových odpovědi cpal do buněk tabulky a až to bylo celé poskládané, poslal jako komplet řetezec klientovi.
Pokud chci zachovat čistotu MVC, musím z jednotlivých databázových odpovědí udělat x-rozměrné pole, to pak poslat do view, kde se to teprve rozparsuje do html.
Je tohle správný postup, nebo je v takovém případě "povoleno" to udělat jako "zastara" a poslat do view už hotové html?

odkaz Vyřešeno
9 Taco
odpověděl/-a 11.10.2016

Povoleno je všechno. Nikdo ti nic nezakáže. Ale všechno má své důsledky.

Pokud to uděláš tím starým způsobem, jak budeš řešit, když chceš data posílat na výstup v jiném formátu než v html? Dva nejčastější další jsou json a pdf. Ty data jsou stále ta samá. Ale pokaždé k tomu potřebuješ jinou omáčku. To je motivace proč se odděluje model (v tvém případě databáze) a view.

Další motivace je ta, že oddělením view od modelu pomůže v rozdělení problému na menší, snadněji uchopitelné části. V modelu se soustředíš čistě na to, jak a kde sebrat požadovaná data. Jejich prezentace už tě nezajímá. Stačí, když se nebude moc často měnit jejich struktura. A naopak, ve view máš předem jasně definovaná data, a soustředíš se jen na to, do jakých tagů je obalíš, co vypustíš etc. Změna je snadná, protože se ti tam nepletou žádnou pro tu doménu nepodstatné SQLka. Toto velice rychle pochopíš, když budeš pracovat s kódem, který jsi nedělal ty, a tudíž si nepamatuješ, "jak to tehdá bylo".

Tyto dvě motivace bych asi zdůraznil.

Komentáře

  • skybedy : Díky, takhle nějak jsem to potřeboval slyšet. 12.10.2016

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.