Skip to content

Commit

Permalink
Refactored DI extension
Browse files Browse the repository at this point in the history
[Closes #71]
  • Loading branch information
enumag authored and fprochazka committed May 9, 2015
1 parent 2cd93b3 commit ff87c85
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions src/Kdyby/Translation/DI/TranslationExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -140,22 +140,6 @@ public function loadConfiguration()
if ($this->isRegisteredConsoleExtension()) {
$this->loadConsole($config);
}

$self = $this;
$registerToLatte = function (Nette\DI\ServiceDefinition $def) use ($self) {
$def
->addSetup('?->onCompile[] = function($engine) { Kdyby\Translation\Latte\TranslateMacros::install($engine->getCompiler()); }', array('@self'))
->addSetup('addFilter', array('translate', array($self->prefix('@helpers'), 'translate')))
->addSetup('addFilter', array('getTranslator', array($self->prefix('@helpers'), 'getTranslator')));
};

if ($builder->hasDefinition('nette.latteFactory')) {
$registerToLatte($builder->getDefinition('nette.latteFactory'));
}

if ($builder->hasDefinition('nette.latte')) {
$registerToLatte($builder->getDefinition('nette.latte'));
}
}


Expand All @@ -169,9 +153,6 @@ protected function loadLocaleResolver(array $config)
->setAutowired(FALSE)
->setInject(FALSE);

$builder->getDefinition('application')
->addSetup('$service->onRequest[] = ?', array(array($this->prefix('@userLocaleResolver.param'), 'onRequest')));

$builder->addDefinition($this->prefix('userLocaleResolver.acceptHeader'))
->setClass('Kdyby\Translation\LocaleResolver\AcceptHeaderResolver')
->setInject(FALSE);
Expand Down Expand Up @@ -204,10 +185,6 @@ protected function loadLocaleResolver(array $config)
if ($config['debugger'] && interface_exists('Tracy\IBarPanel')) {
$builder->getDefinition($this->prefix('panel'))
->addSetup('setLocaleResolvers', array(array_reverse($resolvers)));

$builder->getDefinition('application')
->addSetup('$self = $this; $service->onStartup[] = function () use ($self) { $self->getService(?); }', array($this->prefix('default')))
->addSetup('$service->onRequest[] = ?', array(array($this->prefix('@panel'), 'onRequest')));
}
}

Expand Down Expand Up @@ -271,6 +248,33 @@ public function beforeCompile()
$builder = $this->getContainerBuilder();
$config = $this->getConfig();

$self = $this;
$registerToLatte = function (Nette\DI\ServiceDefinition $def) use ($self) {
$def
->addSetup('?->onCompile[] = function($engine) { Kdyby\Translation\Latte\TranslateMacros::install($engine->getCompiler()); }', array('@self'))
->addSetup('addFilter', array('translate', array($self->prefix('@helpers'), 'translate')))
->addSetup('addFilter', array('getTranslator', array($self->prefix('@helpers'), 'getTranslator')));
};

$latteFactoryService = $builder->getByType('Nette\Bridges\ApplicationLatte\ILatteFactory') ?: 'nette.latteFactory';
if ($builder->hasDefinition($latteFactoryService)) {
$registerToLatte($builder->getDefinition($latteFactoryService));
}

if ($builder->hasDefinition('nette.latte')) {
$registerToLatte($builder->getDefinition('nette.latte'));
}

$applicationService = $builder->getByType('Nette\Application\Application') ?: 'application';
$builder->getDefinition($applicationService)
->addSetup('$service->onRequest[] = ?', array(array($this->prefix('@userLocaleResolver.param'), 'onRequest')));

if ($config['debugger'] && interface_exists('Tracy\IBarPanel')) {
$builder->getDefinition($applicationService)
->addSetup('$self = $this; $service->onStartup[] = function () use ($self) { $self->getService(?); }', array($this->prefix('default')))
->addSetup('$service->onRequest[] = ?', array(array($this->prefix('@panel'), 'onRequest')));
}

Kdyby\Translation\Diagnostics\Panel::registerBluescreen();

$extractor = $builder->getDefinition($this->prefix('extractor'));
Expand Down

0 comments on commit ff87c85

Please sign in to comment.