Kdyby\Translation\DI\TranslationExtension::loadConfiguration PHP Метод

loadConfiguration() публичный Метод

public loadConfiguration ( )
    public function loadConfiguration()
    {
        $this->loaders = [];
        $builder = $this->getContainerBuilder();
        $config = $this->getConfig();
        $translator = $builder->addDefinition($this->prefix('default'))->setClass('Kdyby\\Translation\\Translator', [$this->prefix('@userLocaleResolver')])->addSetup('?->setTranslator(?)', [$this->prefix('@userLocaleResolver.param'), '@self'])->addSetup('setDefaultLocale', [$config['default']])->addSetup('setLocaleWhitelist', [$config['whitelist']])->setInject(FALSE);
        Validators::assertField($config, 'fallback', 'list');
        $translator->addSetup('setFallbackLocales', [$config['fallback']]);
        $catalogueCompiler = $builder->addDefinition($this->prefix('catalogueCompiler'))->setClass('Kdyby\\Translation\\CatalogueCompiler', self::filterArgs($config['cache']))->setInject(FALSE);
        if ($config['debugger'] && interface_exists('Tracy\\IBarPanel')) {
            $builder->addDefinition($this->prefix('panel'))->setClass('Kdyby\\Translation\\Diagnostics\\Panel', [dirname($builder->expand('%appDir%'))])->addSetup('setLocaleWhitelist', [$config['whitelist']]);
            $translator->addSetup('?->register(?)', [$this->prefix('@panel'), '@self']);
            $catalogueCompiler->addSetup('enableDebugMode');
        }
        $this->loadLocaleResolver($config);
        $builder->addDefinition($this->prefix('helpers'))->setClass('Kdyby\\Translation\\TemplateHelpers')->setFactory($this->prefix('@default') . '::createTemplateHelpers')->setInject(FALSE);
        $builder->addDefinition($this->prefix('fallbackResolver'))->setClass('Kdyby\\Translation\\FallbackResolver')->setInject(FALSE);
        $builder->addDefinition($this->prefix('catalogueFactory'))->setClass('Kdyby\\Translation\\CatalogueFactory')->setInject(FALSE);
        $builder->addDefinition($this->prefix('selector'))->setClass('Symfony\\Component\\Translation\\MessageSelector')->setInject(FALSE);
        $builder->addDefinition($this->prefix('extractor'))->setClass('Symfony\\Component\\Translation\\Extractor\\ChainExtractor')->setInject(FALSE);
        $this->loadExtractors();
        $builder->addDefinition($this->prefix('writer'))->setClass('Symfony\\Component\\Translation\\Writer\\TranslationWriter')->setInject(FALSE);
        $this->loadDumpers();
        $builder->addDefinition($this->prefix('loader'))->setClass('Kdyby\\Translation\\TranslationLoader')->setInject(FALSE);
        $loaders = $this->loadFromFile(__DIR__ . '/config/loaders.neon');
        $this->loadLoaders($loaders, $config['loaders'] ?: array_keys($loaders));
        if ($this->isRegisteredConsoleExtension()) {
            $this->loadConsole($config);
        }
    }

Usage Example

Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function loadConfiguration()
 {
     $config = $this->getConfig();
     if (isset($config['cothema']['modules'])) {
         foreach ($config['cothema']['modules'] as $module) {
             $this->defaults['dirs'][] = DIR_VENDOR . '/' . $module . '/src/lang';
         }
     }
     parent::loadConfiguration();
 }