CompilerExtension – jak přidat parametry z druhého neonu?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jEhLa
- Člen | 70
Dobrý den,
je nějaký lepší způsob jak přidat v CompilerExtension parametry
z druhého neonu?
U služeb to jde:
$builder = $this->getContainerBuilder();
$config = $this->loadFromFile($configFile);
$this->compiler->parseServices($builder, $config);
Nejde to nějak podobně i u parametrů? Abych nemusel dělat:
if(isset($config['parameters'])){
$builder->parameters = \Nette\DI\Config\Helpers::merge($builder->expand($config['parameters']), $builder->parameters);
}
- hranicka
- Člen | 23
@jEhLa
Já jsem tohle nakonec řešil taky a taky ošklivě, voláním
@internal
funkce:
class DIExtension extends Nette\DI\CompilerExtension
{
public function loadConfiguration()
{
$this->compiler->addConfig([
'parameters' => [
'migrations' => [
$this->name => [
__DIR__ . '/migrations',
],
],
],
]);
// Tohle zpracuje a nastaví parametry Compiler -> Builder
$this->compiler->processParameters();
}
}
Nevím jestli je lepší volat interní funkci (implementační detail?)
nebo její tělo zkopírovat a napřímo nastavovat
$this->getContainerBuilder()->parameters = ...
.