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

时间:2013-05-30 21:30:53

标签: php symfony

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

有什么想法吗?

13 个答案:

答案 0 :(得分:186)

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

Symfony version 2.2.0-DEV - app/dev/debug

如果您无法访问控制台,请尝试阅读版本为hardcodedsymfony/src/Symfony/Component/HttpKernel/Kernel.php,例如:

const VERSION         = '2.2.0';

万一你想知道,console创建了一个Symfony\Bundle\FrameworkBundle\Console\Application的实例。在此类构造函数中,它使用Symfony\Component\HttpKernel\Kernel::VERSION初始化其父构造函数。

答案 1 :(得分:18)

另一种方法是查看定义Symfony\Component\HttpKernel\Kernel的{​​{1}}的来源。 GitHub

上的示例

在本地,这将位于const VERSION

答案 2 :(得分:6)

如果你想动态地在页面中显示你的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版本也会在你的模板中自动更新。我知道这有点矫枉过正,但这就是我在项目中的表现并且它正在运行

答案 3 :(得分:4)

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

php bin/console --version

这将为您提供Symfony版本。

答案 4 :(得分:4)

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

php bin/console about

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

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

除了版本号,我发现其他信息也非常有用。

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

答案 5 :(得分:3)

我们可以使用 Kernel.php 文件找到symfony版本,但问题是Kernal的位置将从版本更改为版本(项目目录中更好的文件搜索)

在symfony 3.0中: MY_PROJECT \厂商\ symfony的\ symfony的\ SRC \的Symfony \元器件\ HttpKernel \ Kernel.php

从Controller / PHP文件检查

    let jsPath = NSBundle.mainBundle().pathForResource("hidesections", ofType: "js");
    let jsContent: String?
    do
    {
        jsContent = try String(contentsOfFile: jsPath!, encoding: NSUTF8StringEncoding)
    }
    catch _
    {
        jsContent = nil
    }
    webView.stringByEvaluatingJavaScriptFromString(jsContent!)

答案 6 :(得分:3)

如果您尝试使用版本symfony

请尝试

symfony 2 +

  

cmd&gt; php app / console --version

symfony 3 +

  

cmd&gt; php bin / console --version

例如

  

D:项目&gt; php bin / console --version

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

答案 7 :(得分:3)

您也可以通过运行

来检查symfony的版本和所有其他已安装软件包的版本
composer show

composer show | grep sonata

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

答案 8 :(得分:1)

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

答案 9 :(得分:1)

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

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

答案 10 :(得分:1)

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

enter image description here

答案 11 :(得分:0)

对于Symfony 3.4

检查此文件vendor / symfony / http-kernel / Kernel.php

中的常量
const VERSION = '3.4.3';

OR

composer show | grep symfony/http-kernel

答案 12 :(得分:0)

根据{{​​1}}命令,

sonata-project / core-bundle的版本为2.3.9,sonata-project / admin-bundle的版本为2.3.7。