jak na trvalou promenou @persistent

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

Zdravim. chtěl bych se zeptat jak je nadefinovat promenou prenasenou mezi pozadavky a jak muze byt velka. Tedy zaprve jak ji nadeklarovat. Na zdojaku jsem nasel neco takoveho:

/**
 * Hodnota vhozených mincí.
 * @persistent - proměnná se bude přenášet mezi HTTP požadavky
 */
public $money = 0;

Moc z toho ale nechapu, jestli tedy kazda promena za timto komentarem je „trvala“ nebo jen prvni za timto komentarem, jak presne to funguje?

A druhy dotaz jak muze byt velka? Muzou to byt cele objekty? tim by se usetrila zates databaze! Moc teto casti nerozumim. Děkuji za objasnění.

Mikulas Dite
Člen | 756
+
0
-

Persistent platí jenom pro tu jednu anotovanou property. Velikost nevím, ale posílal bych maximálně tak int/string, array to umí, ale objekty už bych neposílal. Krom toho, persistent se přenáší v url, tzn. minimálně tenhle limit na délku tam je.

Rozhodně ale nejde o náhradu za db.

jasir
Člen | 746
+
0
-

Persistentní parametry jsou normální parametry, jen se automaticky přenášejí přes všechny akce prezenteru (nemusíš je vyjmenovávat v actionXXX($param)). Objekty to být nemohou (btw, jedna z mých prvních otázek na Nette kdysi byla právě na toto), ale mohou to být array. Ale nezapomeň, platí pro ně stejná omezení jako pro normální parametry, tedy zejména maximální délka URL (tuším cca 2KB)

joseff
Člen | 233
+
0
-
/**
 * @persistent
 */
public $money = 0;
public $money1 = 1;
/**
 * @persistent
 */
public money2 = 2;

takze jestli tomu dobre rozumim v tomto pripade bude persistent money a money2 ?

arron
Člen | 464
+
0
-

jo:-)