| 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 obsahovatA 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: 14 let
|
|||
0