好的,我不想做一些非常简单的事情,我只想从app / config / config.yml获取此值
框架: default_locale:nl
我想在EventListener中获取此值。任何人都可以帮忙吗?
编辑1 :(这是对的)?但我不在这里使用DependencyInjection类..我很困惑..
服务: core_locale.locale_listener: class:Eyee \ CoreBundle \ EventListener \ LocaleListenerDefault 参数:[“%kernel.default_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`
答案 0 :(得分:2)
我没有得到你的问题。要使用eventlistener,您需要在服务文件中注册该服务。在那里你可以像上面所写的那样将参数传递给构造函数:
services:
core_locale.locale_listener:
class: Eyee\CoreBundle\EventListener\LocaleListenerDefault
arguments: ["%kernel.default_locale%"]
这应该有效。 或者你的问题是什么,什么不在那里工作?
答案 1 :(得分:1)
这取决于您是否可以访问班级中的容器。
在控制器中,你可以这样做:
$locale = $this->container->getParameter('framework.default_locale');
stackoverflow上有很多答案已经回答了这个问题。
对于非控制器类,您需要使用依赖注入。
请阅读文档章节Introduction to Parameters。