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
Č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)
- czheeek
- Člen | 17
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)