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í.

Diskuze: OOP knihovna/model

Aktivity
Avatar
H*falk*W
Člen
Avatar
H*falk*W:30.1.2014 17:59

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):30.1.2014 18:03

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
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na H*falk*W
Neaktivní uživatel:30.1.2014 18:07

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
30.1.2014 18:07
Neaktivní uživatelský účet
Avatar
H*falk*W
Člen
Avatar
H*falk*W:30.1.2014 18:53

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
Tvůrce
Avatar
Odpovídá na H*falk*W
Petr Nymsa:30.1.2014 19:05

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):30.1.2014 19:07

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
30.1.2014 19:07
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
mayo505
Tvůrce
Avatar
mayo505:30.1.2014 19:13

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:30.1.2014 19:22

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
Odpovídá na H*falk*W
Neaktivní uživatel:30.1.2014 19:33

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
30.1.2014 19:33
Neaktivní uživatelský účet
Avatar
H*falk*W
Člen
Avatar
H*falk*W:30.1.2014 19:49

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
Odpovídá na H*falk*W
Neaktivní uživatel:31.1.2014 17:01

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

Nahoru Odpovědět
31.1.2014 17:01
Neaktivní uživatelský účet
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.