Man*_*olo 3 symfony composer-php
我想知道是否有办法composer.json从带有 Symfony 的控制器获取版本。我的composer.json样子:
{
"name": "myProject",
"version": "0.0.0",
"description": "myProject description",
"license": "AGPL-3.0",
"type": "project",
"require": {
"php": "^7.1.3",
...
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何对此的参考。
PS:我正在使用 Symfony 4。
你可以这样做:
$filename = $this->getParameter('%app.kernel_dir%') . '/../composer.json';
$composerData = json_decode(file_get_contents($filename), true);
$version = $composerData['version'];
Run Code Online (Sandbox Code Playgroud)
然后该变量应包含示例中的值0.0.0。
这假设您的控制器扩展了基本控制器以访问%app.kernel_dir%参数。如果没有,您也可以使用控制器的相对路径或其他东西来确定 composer.json 的位置
您可以使用PackageVersions库及其相关PrettyPackageVersions。
它们提供单个类 API 来获取当前安装的 Composer 依赖项版本,例如:
use PackageVersions\Versions;
use Jean85\PrettyVersions;
// Will output "1.0.0@0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"
echo Versions::getVersion('myvendor/mypackage');
// Will output "1.0.0"
echo (string) PrettyVersions::getVersion('myvendor/mypackage');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1676 次 |
| 最近记录: |