Jak použít modely v Nette

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Namespace
Člen | 81
+
0
-

Dobrý večer,
v Nette jsem teprve začátečník, tak snad vás můj dotaz moc neurazí.

Prošel jsem dokumentaci, vzorovou aplikaci a zdejší forum, ale nikde jsem nenašel popis fungování modelu v Nette. Nejblíže k tomuto tématu je tento článek pana Procházky (https://pla.nette.org/…itory-mapper), ale ten je bohužel 4 roky starý … za tu dobu Nette jistě ušlo kus cesty.

Tak tedy má otázka: Jak správně využít a použít modely v Nette? Existují k tomu nějaké tutoriály či část dokumentace, která mi unikla?

Děkuji

Mysteria
Člen | 797
+
0
-

Souhrn je tady: https://forum.nette.org/…senterom-atd#…
Případně si přečti celé téma, pěkně se to tam rozebíralo. :)

Šaman
Člen | 2666
+
0
-

Model je je jen třída, nebo většinou skupina tříd, která zajišťuje veškerou aplikační logiku nezávislou na způsobu prezentace. Představ si že máš aplikaci v prohližeči a pak třeba textový terminál. Oba způsoby prezentace budou naprosto odlišné (třeba formuláře a výpis dat bude pokaždý vypadat jinak), ale když už jednou posbíráš data od uživatele, tak ti model spočítá (najde v db) výsledek a předá zase prezentační vrstvě, která ho nějak zobrazí (nebo třeba pošle mailem, to je modelu jedno).

A ta aplikační logika může být pokaždé úplně jiná (blog, eshop, hra), takže na model žádné univerzální postupy nejsou. Nicméně jsou různé best practise pro práci s databází a základní dolování dat pokud data v databázi chápeš jako entity (viz ER diagram). Problematiku popisují (vesměs anglicky) články na téma repository, DAO (data access object) a domain model.
Ukázku jednoduchého repozitáře nad NDbT (resp. hybrida mezi repository a DAO) mám třeba tady.

Namespace
Člen | 81
+
0
-

Za odkaz děkuji. To je přesně to, co jsem chtěl :-).

Nejde o univerzální postup, ale spíš o nějaké základy, nebo jak to říct. Prostě, jak se má model chovat vůči zbytku aplikace. V dokumentaci je celkem pěkně popsaná práce s presentery, ale o modelech se tam mlčí.

Každopádně děkuji, za odkaz na kódy. Celkem už to chápu mnohem lépe :-)