PHP による開発にて、パッケージ(依存性)管理ツールとして今後標準になるだろうと言われている Composer を、 NetBeans の次期リリースにてサポートする予定となっています
なお、以降の記述は現在(2012年10月01日時点)にリリースされている開発版よるものですので、実際のリリース版と異なる可能性もありますので、ご了承下さい
また、 Composer そのものの使用法については今回詳しくは説明しませんので、別途
Composer のドキュメント等を参照ください
今回使用した環境は以下のとおりです
* Mac OS X version 10.8.2
* PHP 5.4.7
* NetBeans IDE Dev (Build 201209260001)
まず、適当な場所にて下記コマンドを実行し、 Composer をダウンロードします
$ curl -s https://getcomposer.org/installer | php
次に NetBeans 開発版を起動し、「オプション」ウィンドウを開きます
ウィンドウ中の「PHP」タブを選択し、更に「Composer」タブをクリックします
「Composer」フィールドに、先ほどダウンロードしたファイル("composer.phar")のパスを指定します
「Vendor」、「Author name」、「Autor e-mail」フィールドは、プロジェクト情報として使用されるため、適当な値を入力してください
入力後、画面下部の「OK」ボタンをクリックし、設定を反映します
以上で、 Composer を使用する準備はできましたので、実際に PHP アプリケーションプロジェクトにて使ってみたいと思います
今回は、新規に PHP アプリケーションのプロジェクトを作成します
(既存のプロジェクトでも以降の操作にて Composer 対応とすることが可能です)
「プロジェクト」ツリーより、今回作成したプロジェクトを右クリックし、表示されたコンテキストメニューより、「Composer > Init」と選択します
初期化処理が実行され、プロジェクトツリー内に "composer.json" というファイルが新しく生成されます
"composer.json" ファイルの内容は以下のようになっています
先に Composer の設定画面で設定した値が反映されています
{
"name": "ja-netbeans-org/composer-sample-project",
"description": "Description of project ComposerSampleProject.",
"authors": [
{
"name": "Junji Takakura",
"email": "takakura@example.com"
}
],
"require": {
}
}
再度プロジェクトを右クリックし、表示されたコンテキストメニューより、「Composer > Install」を選択します
インストール処理が実行され、 "vendor" フォルダなどが新たに作成されます
次に、プロジェクトにログライブラリの "
Monolog" を追加します
"require" ブロックに下記のように Monolog パッケージに関する記述を追加します
パッケージを指定する際はバージョン番号の指定をあわせて記述します
(下記例では 1.0.1 、1.0.2 … 1.0.20 などのバージョンが対象となります)
{
/* 中略 */
"require": {
"monolog/monolog": "1.0.*"
}
}
"composer.json" ファイルを保存し、変更した内容を反映します
プロジェクトを右クリックし、表示されたコンテキストメニューより、「Composer > Update」を選択します
アップデート処理が実行され、 "vendor" フォルダ以下に "monolog "フォルダが新たに作成されます
この他に「Validate」 コマンドによる "composer.json" の内容の検証、及び 「Self Update」 コマンドによる "composer.phar" 自身の更新を行うことができます
このように、 PHP アプリケーションプロジェクトに完全に統合された形にて Composer の機能を利用することができます
NetBeans 次期開発版ではこれ以外にも多くの新機能が追加される予定となっています
機会があれば、紹介できたらと思います
気になるリリース時期については、
JavaOne 2012 の1日目にて、2013年前半予定との発表がありました
(また、 Java SE の新バージョンリリースに合わせて、 NetBeans のメジャーバージョンアップも行なっていく計画のようです)
リリースまでにはもう少し時間がありますが、新機能に興味のある方は開発版を是非触って頂き、お気づきの点等ありましたら、
ML 等でお知らせ頂ければと思います