1

我需要从服务中获取当前语言环境,包括 Symfony 2.0.x (uses Session) 和 Symfony 2.1.x (uses 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或奇怪的东西......

4

1 回答 1

2
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';
于 2012-12-21T21:39:12.870 回答