我知道我已经下载了Symfony2
项目并开始使用,但我已多次更新我的供应商,我想知道我有哪个版本的symfony
有什么想法吗?
答案 0 :(得分:186)
运行app/console --version
(对于Symfony3:bin/console --version
),它应该给你一个非常好的主意。在我的一个随机项目中,输出是:
Symfony version 2.2.0-DEV - app/dev/debug
如果您无法访问控制台,请尝试阅读版本为hardcoded的symfony/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)
答案 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)
sonata-project / core-bundle的版本为2.3.9,sonata-project / admin-bundle的版本为2.3.7。