$builder->addDefinition(..)->setClass(..) ->addSetup(‚foo‘,array(‚bar1‘,‚bar2‘)) fail

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

Ahoj, narazil jsem na následující podivnost, snažím se protlačit do service nějaké parametry v jejím CompilerExtension, třeba takto:

$builder->addDefinition($this->prefix('foo'))
		->setClass('Foo')
		->addSetup('setLanguages', array('bar1','bar2'));

Sluužba se vytvoří, setLanguages se zavolá, ale místo celého pole je do ní injektována pouze první položka pole, zde tedy ‚bar1‘. Netušíte v čem může být háček? Díky!

(Nette 2.0.5)

Editoval pidiclovek (9. 9. 2012 12:06)

Filip Procházka
Moderator | 4668
+
0
-

Zkus to takto

$builder->addDefinition($this->prefix('foo'))
                ->setClass('Foo')
                ->addSetup('setLanguages', array(array('bar1','bar2')));
pidiclovek
Člen | 91
+
0
-

To je přesně ono, díky Filipe! :)