problém s CompilerExtension při vyvolávání vyhazuje Nette\DI\MissingServiceException

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

Čau,
mám takový problém mám aplikaci která je rozdělena do 3 „modulů“ u kterých chci, abych měl rozdělenou databázi a celou konfiguraci. a mít jednu celou globální konfiguraci nacož chci použít config.neon a další modularitu řešit pomocí vlastních Extension mám jeden extension, který je zaregistrován v bootstrap.php takto:

$configurator->onCompile[] = function ($configurator, $compiler) {
	$compiler->addExtension('cms', new CMSExtension);
};

dále object Extension vypadá takto:

namespace App\CMSModule\Extension;

use Nette\Config\CompilerExtension;

class CMSExtension extends CompilerExtension
{
	/**
	 * load configuration
	 */
	public function loadConfiguration()
	{
		$builder = $this->getContainerBuilder();
		$this->compiler->parseServices($builder, $this->loadFromFile(__DIR__ . '/extension.neon'));
	}
}

v extension.neon toto:

common:
	parameters:
		title: 'Content Management System'
		dirs:
			css: %wwwDir%/w_cms/css
			js: %wwwDir%/w_cms/js
			fileStorage: %appDir%/CMSModule/storage

	services:
		database: DibiConnection(%database%)
		models: App\CMSModule\Models\Articles(@database)

production < common:
	parameters:
		database:
			....

development < common:
	parameters:
		database:
			....

při vyvolání v base presenteru takto:

	protected function startup()
	{
		parent::startup();

		dump($this->context->cms->models);
		exit;
	}

mi vyhodí exception
Nette\DI\MissingServiceException
Service ‚cms.models‘ not found

Editoval czheeek (23. 1. 2013 21:55)

Jan Tvrdík
Nette guru | 2595
+
0
-

Ta služba se jmenuje cms.models, ne?

czheeek
Člen | 17
+
0
-

Jan Tvrdík napsal(a):

Ta služba se jmenuje cms.models, ne?

i když dám

$models = 'cms.models';
$this->context->cms->$models

tak je to samé

hrach
Člen | 1834
+
0
-

Melo by to byt csm_models, imho ne?

czheeek
Člen | 17
+
0
-

hrach napsal(a):

Melo by to byt csm_models, imho ne?

tím to boužel také není zkoušel jsem i

$this->context->cms.models
$this->context->cms->models
$this->context->cms_models
$this->context->cms->cms_models
$this->context->cms->cms.models

a stále stejná chyba… :-(

Editoval czheeek (23. 1. 2013 22:49)

hrach
Člen | 1834
+
0
-

no, ono taky vlastne dost zalezi na verzi… :D A mrkni do vygenerovaneho konfigurotoru, jak je to ulozene.

jiri.pudil
Nette Blogger | 1028
+
0
-
$this->context->{'cms.models'}

?

czheeek
Člen | 17
+
0
-

jiri.pudil napsal(a):

$this->context->{'cms.models'}

?

Vše jsem zkoušel :-)