Auto-wiring zamezení předávání do constructoru

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

Zkoušim si hrát s Auto-wiring a narazil jsem na jeden problém.

Mám jednoduchou komponentu, jež dědí od Nette\Application\UI\Control.
Nastavuji ji v extension pomocí:

	$builder->addDefinition('infoComponent')
				->setClass('\Utils\InfoComponent')
					->addSetup('setStart', "%start%")
					->addSetup('setVersion', "%version%")

Problém je v tom, že toto skončí na chybě: Circular reference detected for services: copyrightComponent..
Důvodem je to, že se do constructoru předá sama služba. Viz:

protected function createServiceInfoComponent()
{
	$service = new \Utils\InfoComponent($this->getService('infoComponent'));

Jak tento rpoblém vyřešit? Rád bych jí pak v presenteru injectnul.
Děkuji.

Filip Procházka
Moderator | 4668
+
0
-
abstract class BaseControl extends Nette\Application\UI\Control
{
	public function __construct()
	{
		parent::__construct();
	}
}

Tvoje komponenty budou dědit od tohoto (nebo samy budou takhle překrývat konstruktor) a je po problému :)

MartinitCZ
Člen | 580
+
0
-

@**Filip Procházka**: Děkuji :)