144

我知道我已经下载了一个Symfony2项目并开始使用,但我已经多次更新了我的供应商,我想知道我有哪个版本的 symfony

任何的想法 ?

4

13 回答 13

242

运行app/console --version(对于 Symfony3: bin/console --version),它应该给你一个很好的主意。在我的一个随机项目中,输出为:

Symfony version 2.2.0-DEV - app/dev/debug

如果您无法访问控制台,请尝试阅读symfony/src/Symfony/Component/HttpKernel/Kernel.php,其中版本是硬编码的,例如:

const VERSION         = '2.2.0';

以防万一您想知道,console创建一个Symfony\Bundle\FrameworkBundle\Console\Application. 在此类构造函数中,它用于Symfony\Component\HttpKernel\Kernel::VERSION初始化其父构造函数。

于 2013-05-30T21:40:18.777 回答
35

尽管已经有很多好的答案,但我想添加一个尚未提及的选项。使用命令:

php bin/console about

您可以获得有关当前项目的许多详细信息。第一部分是关于 Symfony 本身,看起来像这样:

-------------------- ------------------------------------------- 
 Symfony                                                         
-------------------- ------------------------------------------- 
 Version              4.2.3                                      
 End of maintenance   07/2019                                    
 End of life          01/2020                                    
-------------------- ------------------------------------------- 

我发现除了版本号之外的其他信息非常有用。

还有其他部分提供有关(框架)内核、PHP、环境的详细信息。

于 2019-02-16T08:45:34.740 回答
26

另一种方法是查看定义位置的Symfony\Component\HttpKernel\Kernel来源const VERSIONGitHub 上的示例

在本地,这将位于vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php.

于 2014-07-04T13:12:23.780 回答
15

在终端/命令提示符中使用以下命令:

php bin/console --version

这会给你你的 Symfony 版本。

于 2018-06-22T00:24:42.103 回答
8

您还可以通过运行检查 symfony 的版本和所有其他已安装软件包的版本

composer show

或者

composer show | grep sonata

获取特定软件包的版本,例如奏鸣曲等。

于 2018-01-24T08:50:47.487 回答
7

如果你想在页面中动态显示你的 Symfony 2 版本,例如在页脚中,你可以这样做。

创建服务:

<?php

namespace Project\Bundle\DuBundle\Twig;

class SymfonyVersionExtension extends \Twig_Extension
{


 public function getFunctions()
 {
 return array(
 //this is the name of the function you will use in twig
 new \Twig_SimpleFunction('symfony_version', array($this, 'b'))
   );
 }

public function getName()
{
//return 'number_employees';
 return 'symfony_version_extension';
}   

public function b()
{
 $symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
 return $symfony_version;
}
}

在 service.yml 中注册

 dut.twig.symfony_version_extension:
    class: Project\Bundle\DutBundle\Twig\SymfonyVersionExtension
    tags:
        - { name: twig.extension }
    #arguments: []

你可以在任何地方调用它。在 Controller 中,将其包装在 JSON 或页面示例页脚中

 <p> Built With Symfony {{ symfony_version() }} Version MIT License</p>

现在每次你运行 composer update 来更新你的供应商时,symfony 版本也会在你的模板中自动更新。我知道这有点矫枉过正,但这是我在我的项目中这样做的方式并且它正在工作。

于 2015-12-01T02:37:46.587 回答
5

我们可以使用Kernel.php文件找到 symfony 版本,但问题是内核的位置会因版本而异(最好在项目目录中进行文件搜索)

在 symfony 3.0 中:my_project\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php

从控制器/ PHP 文件中检查

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**
于 2016-04-14T06:17:24.107 回答
4

如果你尝试使用 symfony 版本

请尝试

symfony 2 +

cmd>php 应用程序/控制台 --version

symfony 3+

cmd>php bin/控制台 --version

例如

D:project>php bin/console --version

Symfony 3.2.8 (kernel: app, env: dev, debug: true)
于 2017-08-29T09:11:05.410 回答
2

在您的 Symfony 项目中,您可以通过以下方式获取 PHP 中的值:

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
于 2015-10-06T01:52:21.340 回答
2

对于 Symfony 3.4

检查此文件 vendor/symfony/http-kernel/Kernel.php 中的常量

const VERSION = '3.4.3';

或者

composer show | grep symfony/http-kernel
于 2018-03-06T01:22:06.907 回答
1

也许这里的答案已经过时了......无论如何,对于我运行 Symfony 4 的我来说,这很容易,只需symfony -V从命令行键入即可。

在此处输入图像描述

于 2020-12-29T23:47:14.833 回答
0

如果你在 app_dev,你可以在页面左下角找到 symfony 版本

于 2014-07-04T13:05:41.113 回答
0

此页面是搜索的顶级 Google 结果which version symfony using,而最热门的答案可能不再有效。

显然我在运行后symfony new aqua_note(来自 SymfonyCasts 推荐)在 Symfony 5 上。

我最终不得不跑去grep -r VERSION . | grep Kernel看看./vendor/symfony/http-kernel/Kernel.php: public const VERSION = '5.4.2';……至少我现在认为这是正确的。

于 2022-01-10T14:36:44.813 回答