【问题标题】:Getting Symfony 2 version from withing a service?从服务中获取 Symfony2 版本?
【发布时间】:2012-12-22 05:39:12
【问题描述】:

我需要从服务中获取当前语言环境,包括 Symfony 2.0.x(使用 Session)和 Symfony 2.1.x(使用 Request)。

我会这样做:

if(version_compare(Symfony::VERSION, '2.1.0') < 0) {
    $obj = $this->get('session');
}
else {
    $obj = $this->get('request');
}

$locale = $obj->getLocale();

但是没有Symfony::VERSION 常量。任何想法?除了使用is_callable 或其他奇怪的东西...

【问题讨论】:

    标签: session symfony request locale


    【解决方案1】:
    use Symfony\Component\HttpKernel\Kernel;
    echo Kernel::VERSION . "\n";
    

    不确定这是否是推荐的方式,但它有效。内核类实际上是在 bootstrap.cache 类中定义的,因此每当您更新 Symfony 源代码时都会更新 VERSION。

    还公开:

    const VERSION         = '2.1.4-DEV';
    const VERSION_ID      = '20100';
    const MAJOR_VERSION   = '2';
    const MINOR_VERSION   = '1';
    const RELEASE_VERSION = '4';
    const EXTRA_VERSION   = 'DEV';
    

    【讨论】:

    • 谢谢!哪一个将与 version_compare 兼容?
    • VERSION 将是兼容的,但在您的情况下,您只需要检查 MINOR_VERSION。
    • 似乎应该有一个易于将版本注入服务但我没有找到它。
    • 如何获取该值并将其注入服务定义的扩展类? $container-&gt;getDefition('foo')-&gt;addArgument($value).
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多