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

ziz*_*jab 111 php symfony

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

任何的想法 ?

Die*_*lló 199

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

Symfony version 2.2.0-DEV - app/dev/debug
Run Code Online (Sandbox Code Playgroud)

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

const VERSION         = '2.2.0';
Run Code Online (Sandbox Code Playgroud)

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

  • 对我来说,它是`bin/console --version` (7认同)
  • 或者只是看看symfony dev栏的左上角(仅在dev mod中可见)! (3认同)

Ada*_*ney 22

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

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


Pav*_*kin 8

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

composer show
Run Code Online (Sandbox Code Playgroud)

或者

composer show | grep sonata
Run Code Online (Sandbox Code Playgroud)

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


小智 8

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

php bin/console --version
Run Code Online (Sandbox Code Playgroud)

这将为您提供Symfony版本。

  • 更详细的解释会有所帮助。 (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;
}
}
Run Code Online (Sandbox Code Playgroud)

在service.yml中注册

 dut.twig.symfony_version_extension:
    class: Project\Bundle\DutBundle\Twig\SymfonyVersionExtension
    tags:
        - { name: twig.extension }
    #arguments: []
Run Code Online (Sandbox Code Playgroud)

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

 <p> Built With Symfony {{ symfony_version() }} Version MIT License</p>
Run Code Online (Sandbox Code Playgroud)

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


cez*_*zar 6

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

php bin/console about
Run Code Online (Sandbox Code Playgroud)

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

-------------------- ------------------------------------------- 
 Symfony                                                         
-------------------- ------------------------------------------- 
 Version              4.2.3                                      
 End of maintenance   07/2019                                    
 End of life          01/2020                                    
-------------------- ------------------------------------------- 
Run Code Online (Sandbox Code Playgroud)

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

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


Moh*_*eed 5

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

在 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**
Run Code Online (Sandbox Code Playgroud)


afe*_*eef 5

如果你尝试使用 symfony 版本

请尝试

交响乐 2 +

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

交响乐 3+

cmd>php bin/console --version

例如

D:项目>php bin/console --version

Symfony 3.2.8 (kernel: app, env: dev, debug: true)
Run Code Online (Sandbox Code Playgroud)