2016-08-21 6 views
0

Symfonyベースのコンソールアプリケーションでは、プログラムでコンパイラファイル(ブランチエイリアスではない)からバージョン番号を読み取る必要があります。作者、プログラムでバージョン番号を読む

手作業では、composer show -sを使用してルートパッケージ情報を取得できますが、私のパッケージのクリーンバージョンを取得するコマンドはありません。

目的は、* .txtファイルまたはセマンティックバージョン番号を含むその他のファイルベースの方法を処理することなく、アプリケーションの実行時にインストールされたパッケージのバージョンを自動的に表示することです。

悲しいことに私は作曲家のアーキテクチャに精通していないので、これを達成するためにどのようなコンポーネントを使用できるかわかりません。

アイデアや解決済みのパッケージがあれば大歓迎です。

答えて

1

私は少し遅れて返信しますが、コンポーザーが作成したJSONファイルから情報を読むことができます。

ファイルの場所はvendor/composer/installed.jsonです。

JSONを読み込んで解析し、必要な情報を取得します。

​​パッケージは何かをしています。

1

プロジェクトで

composer require composer/composer --dev 

example.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; 
    // ... 
} 
を作曲をインストールします。
関連する問題