Symfony 2:从config.yml获取(默认语言环境)参数

Symfony 2:从config.yml获取(默认语言环境)参数,symfony,locale,config,event-listener,Symfony,Locale,Config,Event Listener,好的,我不想做一些非常简单的事情,我只想从app/config/config.yml获得这个值 框架: 默认语言环境:nl 我想在EventListener中获取此值。。有人能帮忙吗 编辑1:是这样吗?但是我这里不使用DependencyInjection类。。我很困惑 服务: core_locale.locale_侦听器: 类:Eyee\CoreBundle\EventListener\LocaleListenerDefault 参数:[%kernel.default\u locale%] &

好的,我不想做一些非常简单的事情,我只想从app/config/config.yml获得这个值

框架: 默认语言环境:nl

我想在EventListener中获取此值。。有人能帮忙吗

编辑1:是这样吗?但是我这里不使用DependencyInjection类。。我很困惑

服务: core_locale.locale_侦听器: 类:Eyee\CoreBundle\EventListener\LocaleListenerDefault 参数:[%kernel.default\u locale%]

<?php

namespace Eyee\CoreBundle\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;


/**
* use this class if no database Languages available..
*/
class LocaleListenerDefault implements EventSubscriberInterface
{
    private $defaultLocale;

    public function __construct($default_locale = 'en')
    {    
        $this->defaultLocale = $default_locale;
    }`enter code here`

这取决于您是否有权访问类中的容器

在控制器中,您可以执行以下操作:

$locale = $this->container->getParameter('framework.default_locale');
关于stackoverflow有许多答案已经回答了这个问题

对于非控制器类,需要使用依赖项注入


请阅读文档章节。

我不明白您有什么问题。要使用eventlistener,您需要在服务文件中注册服务。在这里,您可以像上面所写的那样将参数传递给构造函数:

services: 
    core_locale.locale_listener: 
    class: Eyee\CoreBundle\EventListener\LocaleListenerDefault 
    arguments: ["%kernel.default_locale%"]
这应该行得通。
或者您的问题是什么,哪些不起作用?

但是您不能在控制器之外访问服务容器。这是不正确的-您可以使用依赖项注入来访问容器。您需要为类创建一个服务定义,并将其注入其中。此外,您可以将所需的参数注入到新创建的服务中。如果您提供有关该类的更多详细信息以及使用该参数的目的,我可以添加有关如何实现目标的更多信息。像这样?服务:core\u locale.locale\u侦听器:class:Eyee\CoreBundle\EventListener\localelistenerfault参数:[%kernel.default\u locale%]private$defaultLocale;公共函数uuu construct$default\u locale='en'{$this->defaultLocale=$default\u locale;}我不使用Symfony\Component\DependencyInjection\ContainerBuilder;使用Symfony\Component\DependencyInjection\Reference;在这里很抱歉给你加价。。Stackoverflow不允许做出“干净”的回复?