Diskuze: OOP

PHP PHP OOP American English version English version

Avatar
H*falk*W
Člen
Avatar
H*falk*W:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na H*falk*W
David Čápka:

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  +1 13.4.2014 10:37
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.