/** * Returns extension configuration. * @param array default unexpanded values. * @return array */ public function getConfig(array $defaults = NULL) { $config = $this->compiler->getConfig(); $config = isset($config[$this->name]) ? $config[$this->name] : array(); unset($config['services'], $config['factories']); return Config\Helpers::merge($config, $this->compiler->getContainerBuilder()->expand($defaults)); }
/** * Register extension if not registered by user. */ private static function registerAdditionalExtension(\Nette\DI\Compiler $compiler, $name, $newExtension) { $extensions = []; $config = $compiler->getConfig(); foreach (isset($config['extensions']) ? $config['extensions'] : [] as $extension) { if (is_string($extension)) { $extensions[] = $extension; } elseif ($extension instanceof \Nette\DI\Statement) { $extensions[] = $extension->getEntity(); } } if (!in_array(get_class($newExtension), $extensions)) { $compiler->addExtension($name, $newExtension); } }