Vlastní extension na dev verzi – Nette\DI\ServiceCreationException
- MartinitCZ
- Člen | 580
Stále to na mne řve:
Service 'googleComponent': Parameter $parameters in Utils\GoogleComponent::setParameters() has no type hint, so its value must be specified.
Přitom v dané třídě mám:
/**
* @var array
*/
private $parameters;
/**
* Set parameters
*
* @param array
*/
public function setParameters($parameters)
{
$this->parameters = $parameters;
}
Zkusil jsem i toto, ale nic to nezměnilo:
/** @var array */
private $parameters;
Nevíte někdo, jak vyřešit tento problém?
- MartinitCZ
- Člen | 580
@**norbe**: Předávám, jelikož v 2.0.10 to bylo bez problémů. Akorát jsem obalil proměnné %var% do $builder->expand(%var%)
- MartinitCZ
- Člen | 580
@**norbe**: Ok. Tady je její obsah. Třída, které dědí od
\Nette\Config\CompilerExtension
.
public function loadConfiguration()
{
$builder = $this->getContainerBuilder();
$config = $this->getConfig();
$builder->addDefinition('googleComponent')
->setClass('Utils\GoogleComponent')
->addSetup('setParameters', $builder->expand("%cms.google%"));
}
Editoval martinit (16. 4. 2013 16:08)
- MartinitCZ
- Člen | 580
@**enumag**: To mi moc nepomůže ;)
@**castamir**: Vyzkoušeno, ale problém přetrvává.
- MartinitCZ
- Člen | 580
@**enumag**: Byl bych rád, kdyby se to vyřešilo. Záhadou je mi to, že mám v podstatě úplně stejnou třídu (jen jiné jméno), taky nastavenou přes extension, a tu to veme v pohodě.
- MartinitCZ
- Člen | 580
@**enumag**: Toto pomohlo, ale přijde mi to dost divné. Když
zamouřim obě oči, tak minimálně zahlášená chyba.
Nebudem troškaři … je to celé divné. Jednou stačí, a funguje,
$builder->expand("%cms.google%")
, jindy musím použít
array('parameters' => $builder->expand("%cms.google%"))
.
Pokud je to nějaký bug, tak by bylo dobré to ještě do 2.1 procpat. :)
EDIT: Na něco jsem přišel. Zmíněný hack od enumag se musí použít tehdy, jeli „%cms.google%“ array pole. Pokud jde o string, tak není problém.
Editoval martinit (17. 4. 2013 20:08)
- MartinitCZ
- Člen | 580
@**enumag**: V tomto nepomůžu. Github nemám, takže ani issues nezvládnu. :/ Sry.
- MartinitCZ
- Člen | 580
@**enumag**: Rozumim.
Možná se to trochu protáhne.
Chtěl jsem Davidovi tento problém replikovat na Nette sandbox, ale tam se toto
nestalo.
Zatím zjištuji co kde je špatně ;)
- MartinitCZ
- Člen | 580
Zatim se mi to nedaří najít.
Zjistil jsem, že tété verzi se daný problém nevyskytuje:
https://api.github.com/…5cffe8d93203
Aktuálně to vimdím tak, že problém vznikl díky commitu:
https://github.com/…46e0d3fb3d1f
EDIT: Fix link
Editoval martinit (20. 4. 2013 13:36)