2017-05-08 5 views
0

私たちには、Composer経由でSymfonyにインストールされた複数のベンダーバンドル(外部と内部で書かれています)があります。だから、1のcomposer.jsonの例は次のようになります。SymfonyでComposerによってインストールされたバンドルのバージョンを取得するにはどうすればよいですか?

"repoName/ThisBundle" : "dev-release/1.1.2" 

は、同じように、symfonyのコントローラには、どのように私は、「DEV-リリース/ 1.1を返すために、「ThisBundle」または「repoName/ThisBundle」のバージョンを要求することができます.2 "?

バンドルの1つは、私たちのすべてのアプリケーションのテンプレートを提供し、使用されているテンプレートのバージョンを表示したいアプリケーションの1つです。

+2

ロックファイル – Federkun

+0

を真に解析することができます。これは私がやろうとしていたことですが、それはバージョン番号を取得するための多くの努力です。 Symfonyはフレームワークなので、フレームワークを通してこれらの詳細にアクセスするのが良いでしょう。 – MicWit

答えて

1

あなただけ

composer.phar show 

が現在インストールされているすべてのパッケージとそのバージョン情報が表示されます入力します。 は、詳細を参照してくださいだけでなく、パッケージの名前を指定するには:などのMD5ハッシュ、ソースURL、ライセンスの種類を、コミットを含め、多くのものが表示されます

composer.phar show bundle/bundlename 

+0

おそらく、コントローラ内からこれを行う方法の例を使って答えを更新できますか? – Cerad

+0

ええ、これはコマンドラインでやっているようですが、コントローラではありません(php経由)。 – MicWit

+0

$ this-> container-> getParameter( 'kernel.bundles'); –

0

あなたはコンテナオブジェクトを持っている場合利用できるあなたが

$this->container->getParameter('kernel.bundles'); 

で有効にバンドルの配列を取得しかしappkernal.php 幸運で、ちょうど有効バンドルを思い出すことができます(あなたがコントローラにいる場合は、それがそうである)

+1

これは、バンドルがインストールされているかどうかを知ることができますが、インストールされているかどうかにかかわらず、インストールされている特定のバンドルのバージョンを取得することはできません。この配列は、それがインストールされたバージョンを持っているだけでなく、多次元配列の場合には素晴らしいでしょう。 – MicWit

+0

@MicWitあなたは.htaac​​cesファイルを変更して、composer.jsonファイルにアクセスできるようにしてから、json_decode関数を使って配列に変換することができます(これは悪い方法です)。 それでも、Webディレクトリが一般公開の唯一の場所でなければならないので、やっかいなことはまだありません。幸運 –

+0

ええ、私たちがセキュリティチームに撃たれるようにするつもりはありません!これを行う方法がないように見えますが、Symfonyに機能リクエストを追加することができます。 – MicWit

関連する問題