Ako pri ziskat Session pri vytvarani extension?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute neviete mi poradit mam extension a v nej vytvaram factory ktore potrebuje MarkListStorage, lenze MarkListStorage potrebuje Session, ako predam do MarkListStorage Session?
public function loadConfiguration()
{
$config = $this->getConfig($this->defaults);
$builder = $this->getContainerBuilder();
$storage = new MarkListStorage(/* Tu potrebujem Session */);
$builder->addDefinition($this->prefix('markListFactory'))
->setImplement('\NasExt\Controls\IMarkListFactory')
->setFactory('NasExt\Controls\MarkList', array($storage));
}
Editoval duskohu (9. 1. 2014 15:36)
- David Matějka
- Moderator | 6445
tam nemuzes rovnou vytvaret instanci, musis udelat definici
$builder->addDefinition($this->prefix('markListStorage'))
->setClass('MarkListStorage');
a pokud budes mit spravny typehinty, session se preda (a stejne tak se preda MarkListStorage do MarkList)
- duskohu
- Člen | 778
No teraz to mam takto, nechcel som aby sa to dalo pouzit cez Autowired. Chcel som vediet ci existuje aj ta moznost co som navrhoval, ale asi nie. Dik za info.
$builder->addDefinition($this->prefix('storage'))
->setClass('NasExt\Controls\Storage\MarkListStorage')
->setAutowired(FALSE);
$storage = $this->prefix('@storage');
$builder->addDefinition($this->prefix('markListFactory'))
->setImplement('\NasExt\Controls\IMarkListFactory')
->setFactory('NasExt\Controls\MarkList', array($storage));