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

Ahoj, mám dotaz :-)

Když mám návrhový vzor MVC tak si nejsem jist, co patří do modelu a co zase do knihovnu. Kdy použít knihovnu např. Uzivatel.trida.php a kdy naopak vše nacházet do modelu? Je pro to nějaké pravidlo? Nyní to mám tak, že konstruktor knihovny Uživatel mi kontroluje přihlášení aj., a např. vytvoření/změ­nu/smazání emailu/hesla/... mám v modelu.
Díky za pomoc, trochu se v tom ztrácím :)

 
Odpovědět 30.1.2014 17:59
Avatar
Odpovídá na H*falk*W
Martin Konečný (pavelco1998):

Ahoj,

mohl bys mi, prosím, tvůj dotaz upřesnit? Nepochopil jsem, co je ve tvé aplikaci model a co knihovna.
Předpokládám, že by Uzivatel.trida.php měl být model, protože dle názvu vypadá, že se třída stará o data uživatele.

"a např. vytvoření/změ­nu/smazání emailu/hesla/... mám v modelu"
Podle této věty mi přijde, že máš jednu třídu (např. Model.trida.php), která se stará o všechna data v aplikaci. Pak mi ale nedochází, co přesně má na starost ta třída Uzivatel.

 
Nahoru Odpovědět 30.1.2014 18:03
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na H*falk*W
Inoue Yūki:

V MVC pokud vím neřešíš knihovny. Máš Model (uchovávání, editace dat), Controller (řízení aplikace) a View (zobrazení aplikace) + možné nějaké ty externí knihovny, které ale už ve vzoru neřešíš a voláš je do aplikace externě.

Nahoru Odpovědět  ±0 30.1.2014 18:07
Avatar
H*falk*W
Člen
Avatar
H*falk*W:

Ahoj, myslím to tak, že mám např. vytvořenou knihovnu Uživatel. V ní mám privátní vlastnosti, které se naplní konstruktorem (údaji z databáze) a ty v celé aplikaci získám skrz gettery (getEmail např.). Nyní ale např. potřebuji vytvořit změnu hesla, takže mám vytvořený řadič Změnahesla. V něm mám nyní ale kombinace typu $this->uzivatel->jePrihlasen() a popř. $this->model->nastavHeslo(). A to se mi nelíbí, že mám knhovnu a model extra. Je lepší nacpat vše do té knihovny uživatel nebo ji zcela eliminovat? Výhoda knihovny je v tom, že na začátku si vytvořím instanci objektu Uživatel. Nebavím se jen o této jediné knihovně, mám jich více.

Mě jde o to, co je po stránce OOP správně, protože funguje obojí :) Omlopuvám se za můj složitý vysvětlovací pokus ale plavu v tom jak ryba ve vodě :)

 
Nahoru Odpovědět 30.1.2014 18:53
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na H*falk*W
Petr Nymsa:

Tím vlastně ale máš Model ;)

Nahoru Odpovědět 30.1.2014 19:05
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na H*falk*W
Martin Konečný (pavelco1998):

Pamatuji si své začátky v OOP, takže v pohodě. :-)
Ta třída Model se stará o všechna data v aplikaci?
Osobně bych např. změnu hesla dal do třídy Uzivatel, protože to je akce uživatele.

 
Nahoru Odpovědět  +1 30.1.2014 19:07
Avatar
mayo505
Redaktor
Avatar
mayo505:

nezamieňaš pojmy knihovna a trieda? Pokiaľ viem tak vlastnosti, metody, konštruktor sú súčasťou triedy a knihovna je súbor tried :)

Editováno 30.1.2014 19:14
 
Nahoru Odpovědět 30.1.2014 19:13
Avatar
H*falk*W
Člen
Avatar
H*falk*W:

Třída Model je taková "podle nálady", něco je v knihovnách a něco v modelech. Modelů je více, jsou zděděné od abstraktní hlavní třídy Model - např. v uživatel.model.php mám nyní obsluhu na změnu hesla.
Jak říkám, mám to tak zprasený, že nevím jak z toho "správně" vybruslit ale asi to opravdu

 
Nahoru Odpovědět 30.1.2014 19:22
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na H*falk*W
Inoue Yūki:

Podle toho co tu čtu myslím, že ty tvé knihovny budou zřejmě Modely. :) Myslím, že hledáš něco, co jsem ve svém frameworku pojmenoval Donor. Tedy vlastně něco modelem a controllerem - zpracovávající informaci, tak aby byla použitelná v celé aplikaci. I Nette má svojí obdobu, když se ti nechce zdlouhavě psát duplikáty kódu.

Nahoru Odpovědět  +1 30.1.2014 19:33
Avatar
H*falk*W
Člen
Avatar
H*falk*W:

Ty asi myslíš v Nette DI. Já mám registr, do kterého vytvářím na začátku různé instance (databáze, nastavení, uživatel, logování apod). A když už mám např. extra knihovnu uživatel, tak si myslím, že by tam mělo být vše - metody od validace, změny hesla, .... Ale nevím jestli je to tak OK, chci to mít správně :)

 
Nahoru Odpovědět 30.1.2014 19:49
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na H*falk*W
Inoue Yūki:

A co je vlastně ta tvá knihovna? Třída? Soubor tříd?

Nahoru Odpovědět 31.1.2014 17:01
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 11 zpráv z 11.