Použití modelu – ujasnění

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

Zdravím, rozhodl jsem se, že proniknu do tajů Nette, bohužel už narážím na věci, které mi nejsou úplně srozumitelné. Se strukturovacím návrhem MVC(MVP) jsem seznámen, ovšem do nynějška jsem byl zvyklý, že pokud chci nějaký model použít, musím ho(jelikož je to objekt) deklarovat a pak ho již můžu plnohodnotně používat v Presenteru.

Projel jsem celý quickstart a co se týče modelů, používá se zde UserManager pro správu uživatelů, ovšem nikde jsem nenašel vytvoření modelu a taktéž mi přijde nesmyslné to jak se konkrétně v Presenteru „používá“.Zkoušel jsem projíždět fórum, bohužel nic jsem nenašel a tak se ptám zde. Můžete mi prosím objasnit jak je to s tvorbou a používáním modelů v Nette? Díky, věřím, že pro některé PHP guru tohle bude znít jako hloupá otázka, ale vážně mi to není jasné.

Jan Tvrdík
Nette guru | 2595
+
0
-

Quickstart model prakticky nemá.

ikysek
Člen | 22
+
0
-

Pardón, v části kde se bavím o UserManager, tak jsem zaměnil „quickstart“ za „sandbox“. Každopádně, abych to zkrátil, Kde dochází k vytvoření modelu, když se to neděje v presenteru?

Editoval ikysek (14. 2. 2015 16:42)

Jan Endel
Člen | 1016
+
+3
-

UserManager se vytvoří ve chvíli, kdy se spustí zkompilovaný DI kontejner, tedy na posledním řádku bootstrapu v sandboxu. V presenteru už se má jen a pouze používat, na tvoření takovéhoto typu objektu je již pozdě :-).

ikysek
Člen | 22
+
0
-

Díky, Dependency Injection byla ta mnou hledáná mezera v chápání fungování.

duke
Člen | 650
+
0
-

Pokud se nemýlím tak UserManager (stejně jako jakákoli jiná služba) se vytvoří až ve chvíli, kdy je DI Container požádán o poskytnutí této služby (ať už přímo, nebo skrze službu, která tuto vyžaduje jako svou závislost), a nikoli tedy nutně na posledním řádku bootstrapu, kde se pouze vytváří DI Container. Výjimkou je případ, kdy je u dané služby v konfiguračním souboru uvedeno:

	run: yes

V takovém případě se služba vytváří ihned.

Jan Endel
Člen | 1016
+
0
-

mírné nepřesnosti, leč vedli k rychlejšímu pochopení problematiky :-).