如何知道我有哪个版本的Symfony?


127

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

任何想法 ?


根据命令,sonata-project / core-bundle的版本为2.3.9,sonata-project / admin-bundle的版本为2.3.7 composer show
帕特里克

Answers:


219

运行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初始化其父构造函数。


3
或只是在symfony开发栏中左上角看(仅在dev mod中可见)!
zizoujab

这在Google“如何检测symfony版本”列表中相当高,但是我只有FTP访问服务器。哪个文件表明正在使用哪个版本的Symfony?
HMR 2013年

@HMR只是改善了答案,因此涵盖了您的情况。希望你觉得它有用!:)
DiegoAgulló13年

1
非常感谢,找到了/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
HMR

7
对我来说bin/console --version
黑色

24

另一种方法是查看在Symfony\Component\HttpKernel\Kernel何处const VERSION定义了源。GitHub上的示例

本地位于vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php


20

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

php bin/console about

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

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

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

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


11

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

php bin/console --version

这将为您提供Symfony版本。


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版本也会自动在模板中更新。


5

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

composer show

要么

composer show | grep sonata

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


4

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

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

从Controller / PHP文件中检查

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**

3

如果您尝试使用版本symfony

请尝试

symfony 2 +

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

symfony 3+

cmd> php bin /控制台--version

例如

D:project> php bin /控制台--version

Symfony 3.2.8 (kernel: app, env: dev, debug: true)

2

在Symfony项目内部,您可以通过以下方式在PHP中获得价值:

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;

1

如果您使用的是app_dev,则可以在页面的左下角找到symfony版本


1
您可能需要通过单击屏幕右下角的Symfony徽标来打开调试工具栏;)
Nic Wortel 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.