对于基于 Symfony 的控制台应用程序,我需要以编程方式从它的 Composer 文件(不是分支别名)中读取它的版本号。
手动,我可以使用 来composer show -s获取根包信息,但似乎没有任何命令来获取我的包的干净版本。
目的是在运行应用程序时自动显示已安装的软件包版本,而无需处理 *.txt 文件或其他包含语义版本号的基于文件的方式。
遗憾的是我不熟悉作曲家的架构,所以我不知道可以使用哪些组件来实现这一目标。
任何想法或者可能已经制作好的解决方案都是受欢迎的。
小智 5
在您的项目中安装 Composer
composer require composer/composer --dev
Run Code Online (Sandbox Code Playgroud)
示例.php
<?php
// Include Composer Autoload
require __DIR__ . '/vendor/autoload.php';
use Composer\Factory;
use Composer\IO\NullIO;
$composer = Factory::create(new NullIo(), './composer.json', false);
$localRepo = $composer->getRepositoryManager()->getLocalRepository();
foreach ($localRepo->getPackages() as $package) {
echo $package->getName() . PHP_EOL;
echo $package->getVersion() . PHP_EOL;
echo $package->getType() . PHP_EOL;
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1870 次 |
| 最近记录: |