Předání session sekce pomocí neonu

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

Ahoj,
nevíte jestli jde nějak předat jako parametr nějaké službě konkrétní sekce ze session?
Příklad – mám nějakou třídu, ze které potřebuji udělat dvě služby, pokaždé s jiným nastavením. Již v konstruktory bych chtěl předat jako parametr repository, což bude konkrétní sekce ze session. Nechci předávat celou @session, protože bych pak uvnitř vlastní třídy musel řešit do jaké sekce to uložím, aby se mi ty dvě instance nehádaly a nepřepisovaly si data.

services:
	filter1:
		class: web123\Shop\ProductsFilter
		arguments: [@session]
	filter2:
		class: web123\Shop\ProductsFilter
		arguments: [@session]

S tím, že @session bych si představoval nahradit konkrétní sekcí jako dostanu např.

$this->context->session->getSection('filter1');
$this->context->session->getSection('filter2');

Editoval Filip111 (7. 3. 2012 12:29)

Filip Procházka
Moderator | 4668
+
0
-

Zkusil bych

services:
        filter:
                class: "web123\Shop\ProductsFilter"
                arguments: [@session::getSection('filter1')]
Filip111
Člen | 244
+
0
-

Supr, funguje.

Nenapadlo mě statický volání – od tý doby co používám DI v Nette jsem si vsugeroval, že statický volání je fuj.

Díky.

Filip Procházka
Moderator | 4668
+
0
-

To není statické volání. To je neon zápis pro

new web123\Shop\ProductsFilter($this->session->getSection('filter1'));