Autor | Zpráva | ||
---|---|---|---|
CarlosK Profil * |
#1 · Zasláno: 29. 4. 2012, 15:02:07
Dobrý den, neporadil by mi zde někdo jak pracovat se sessions v Nette 2.03. Marně jsem se pokoušel nalézt návod na internetu, ale marně. Všem děkuji za odpovědi
|
||
Johnik Profil |
#2 · Zasláno: 29. 4. 2012, 15:06:00
|
||
CarlosK Profil * |
#3 · Zasláno: 29. 4. 2012, 15:12:43
Toto jsem četl, ale nechápu, jestli si mám například vytvořit model, který bude obsluhovat sessions a který poté zaregistruji do services (případně nevím jak by takový model měl vypadat). Omlouvám se za takovýto dotaz, ale s Nette teprve začínám.
|
||
Johnik Profil |
#4 · Zasláno: 29. 4. 2012, 15:23:03
To už závisí na návrhu aplikace. Můžeš se sessions pracovat v presenterech nebo modelu, jak chceš.
Důležité je si předat session service z di kontejneru tam, kde se sessions budeš pracovat. |
||
CarlosK Profil * |
#5 · Zasláno: 29. 4. 2012, 15:54:54
Lze to udělat napříkad takto?
Vytvořím model TestSession.php <?php class TestSession { private $session; public function __construct(Nette\Http\Session $session) { $this->session = $session; } public function get($name) { return $this->session->getIterator()->getArrayCopy(); } public function set($name, $data) { $this->session->$name = $data; } } Zaregistruji ho do config.neon: services: testSession: TestSession v prezenteru Test.php zavolám: $session = $container->getService('testSession'); $section = $session->getSection('...'); //zde vůbec nevím, co má metoda getSection obsahovat A zde jsem zkončil. Nevím jak do sessions zapisovat, nebo jak je vypsat. |
||
Johnik Profil |
#6 · Zasláno: 29. 4. 2012, 16:20:09
Práci se session máš popsanou v odkazované dokumentaci, říkal bych to samé.
Ten tvůj model/servicu nechápu, protože jen duplikuje systémovou Nette\Http\Session. Mnohem lepší by bylo si ji z kontejneru vytáhnout přímo a nebalit ji do dalšího objektu. Můžeš s ní pracovat přímo v presenteru, tedy něco jako: ... public function renderDefault() { $section = $this->context->session->getSection("test"); $section->test = "test"; } ... |
||
CarlosK Profil * |
#7 · Zasláno: 29. 4. 2012, 17:50:09
Děkuji, netušil jsem, že je to až takhle jednoduché
|
||
Časová prodleva: 11 let
|
0