Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
H*falk*W
Člen
Avatar
H*falk*W:11.4.2014 8:20

Ahoj,
mám dotaz, ... přestavte si standardní e-shop, ktery má být postaven na MVC.

Jakou roli má hrát kontroler v této struktuře?

Převezme parametry a předá je modelu, z něj získá zase výstup a ten pošle do pohledu. To chápu.

Je správné, že jsem si např. vytvořil objekt Obchod, který volám v různých kontrolerech a který má různé metody - např. getOrders($sto­re_id). Tyto metody pak získávájí tyto informace pomocí modelu pro tento objekt a jsou doplněny logikou? ... Nebo je správné použití přímo volání metody modelu?

Napadají mě možnosti

  1. Kontroler -> Objekt obchod -> metoda getOrders(~) -> model getOrders(~) // stávájící, dalo by se říct, že volám metodu objektu, která volá metodu modelu a získávám data z db, které nenastavuji do proměnných objektu ale obsah vracím přes return do kontroleru.
  2. Kontroler -> Objekt obchod -> metoda getOrders (která zároveň tahá data z DB jako model)
  3. Kontroler -> model getOrders(~) a různé logické podmínky v kontroleru
  4. Kontroler -> model getOrders(~) a různé logické podmínky v modelu

Nepoužívám to špatně?
Snažím se to pochopit, často čtu, že na logiku mám použít model, kam ale zařadit např. odeslání mailu? Do modelu nebo kontroleru? V případě použití objektu na mailera.
Nebo např. funkci najít a nahradit?

Nemáte někdo krátkou a "správnou" ukázku, jak to dělat správně?

Děkuji moc a nezlobte se :)

 
Odpovědět
11.4.2014 8:20
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na H*falk*W
David Hartinger:13.4.2014 10:37

Kontroler je jen malý prostředník mezi šablonou a logikou, cokoli jiného je model. Odeslání emailu patří do modelu a i ten tvůj objekt obchod je model. Přijde mi ale lepší udělat něco jako SprávceObjednávek, SprávceZbozi a podobně, protože takhle by ten obchod byl hrozně dlouhý, kdyby v něm bylo všechno.

Nahoru Odpovědět
13.4.2014 10:37
You are the greatest project you will ever work on.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.