Nette 2.1 jak získat vlastní hodnoty z neon.config
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Michal Vyšinský
- Člen | 608
tu config hodnotu by sis měl předat přímo do služby (neměl by si s ní v presenteru pracovat):
parameters:
myAppId: '123456789'
services:
myService: MyServiceClass(%myAppId")
Editoval CherryBoss (8. 7. 2013 10:36)
- Michal Vyšinský
- Člen | 608
No tak to udělej injektnutím Containeru:
presenter:
/**
* @var \Nette\DI\Container
*/
private $container;
.
.
.
public function injectContainer(\Nette\DI\Container $container) {
$this->container = $container;
}
- Vojtěch Dobeš
- Gold Partner | 1316
Předávat si Configurator
nedává smysl, ani to jednoduše
nejde, zato si lze předat Nette\DI\Container
, což je instance
kontextu, a lze ji stejně jako cokoliv jiného kdekoliv autowiringem požadovat
jako závislost.
- norbe
- Backer | 405
motorcb napsal(a):
@CherryBoss:
Jak bych to měl udělat když si chci to myAppId posílat do šablony? To ze služby nedokážu…
Můžeš si ale injectnout obálku nad tou hodnotou myAppId.. Např:
class MyApplication extends \Nette\Object {
private $id;
public function __construct($appId) {
$this->id = $appId;
}
public function getId() {
return $this->id;
}
}
services:
application: MyApplication(%myAppId")
Do šablony si jí můžeš předat buď celou nebo si z ní jen vytáhnout id…