CompilerExtension zpracování neon

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

Jak nějak rozumně zpracovat neon soubor v CompilerExtension. Mám v něm nějaký services, ty jdou zpracovat v pohodě:

	$this->compiler->parseServices($this->getContainerBuilder(), $config)

ale potřeboval bych i aby se nějak zpracovaly věci, které se odkazují na již definované services. Konkrétně mi jde hlavně o webloader, abych ot nemusel vypisovat přímo v extensioně vše. a zpracovalo se v pohodě tohle:

webloader:
	css:
		admin:
			files:
				- %appDir%/UserModule/AdminModule/assets/user.less
		front:
			files:
				- %appDir%/UserModule/FrontModule/assets/user.less
	js:
		front:
			files:
				- %appDir%/UserModule/FrontModule/assets/user.js
David Matějka
Moderator | 6445
+
0
-

Nevim, jestli te dobre chapu, ale ke konfiguraci vseho se dostanes pres

$this->compiler->getConfig()
Jiří Nápravník
Člen | 710
+
0
-

No jde mi o to, že v CompilerExtension mám:

public function loadConfiguration()
	{
		parent::loadConfiguration();

		$config = $this->loadFromFile(__DIR__ . '/user.config.neon');

		$this->compiler->parseServices($this->getContainerBuilder(), $config);
	}

to mi zaregistruje služby, který jsem si definoval v user.config.neon.

Jenže v user.config.neon bych chtěl odkázat se taky na nějakou již dříve definovanou službou, například webloader jako uvádím výše. Jde to nějak snadno, nebo si musím v tomhle případě vytáhnout deifinici pro webloader.jsCompiler a přidat tam nové css/js?

Tomáš Votruba
Moderator | 1114
+
0
-

Podobne tema jsem resil zde https://forum.nette.org/…ho-rozsireni

A ten parent v tvem kodu tam byt nemusi.

Editoval Tomáš Votruba (14. 5. 2014 9:42)

Filip Procházka
Moderator | 4668
+
0
-

Jirko, pokud Webloader nenaimplementuje providery, tak to prostě nepůjde.

Jiří Nápravník
Člen | 710
+
0
-

Díky za jasné odpovědi.

Ad parent, já jej používám vždy když něco překrývám, člověk nikdy neví, jestli tam v budoucnu nebude něco implementováno:)