Kdyby\Translation\DI\TranslationExtension::loadLocaleResolver PHP Method

loadLocaleResolver() protected method

protected loadLocaleResolver ( array $config )
$config array
    protected function loadLocaleResolver(array $config)
    {
        $builder = $this->getContainerBuilder();
        $builder->addDefinition($this->prefix('userLocaleResolver.param'))->setClass('Kdyby\\Translation\\LocaleResolver\\LocaleParamResolver')->setAutowired(FALSE)->setInject(FALSE);
        $builder->addDefinition($this->prefix('userLocaleResolver.acceptHeader'))->setClass('Kdyby\\Translation\\LocaleResolver\\AcceptHeaderResolver')->setInject(FALSE);
        $builder->addDefinition($this->prefix('userLocaleResolver.session'))->setClass('Kdyby\\Translation\\LocaleResolver\\SessionResolver')->setInject(FALSE);
        $chain = $builder->addDefinition($this->prefix('userLocaleResolver'))->setClass('Kdyby\\Translation\\IUserLocaleResolver')->setFactory('Kdyby\\Translation\\LocaleResolver\\ChainResolver')->setInject(FALSE);
        $resolvers = [];
        if ($config['resolvers'][self::RESOLVER_HEADER]) {
            $resolvers[] = $this->prefix('@userLocaleResolver.acceptHeader');
            $chain->addSetup('addResolver', [$this->prefix('@userLocaleResolver.acceptHeader')]);
        }
        if ($config['resolvers'][self::RESOLVER_REQUEST]) {
            $resolvers[] = $this->prefix('@userLocaleResolver.param');
            $chain->addSetup('addResolver', [$this->prefix('@userLocaleResolver.param')]);
        }
        if ($config['resolvers'][self::RESOLVER_SESSION]) {
            $resolvers[] = $this->prefix('@userLocaleResolver.session');
            $chain->addSetup('addResolver', [$this->prefix('@userLocaleResolver.session')]);
        }
        if ($config['debugger'] && interface_exists('Tracy\\IBarPanel')) {
            $builder->getDefinition($this->prefix('panel'))->addSetup('setLocaleResolvers', [array_reverse($resolvers)]);
        }
    }