Windowsに構築したXAMPP + NetBeansのPHP開発環境にComposerを設定する

前回のエントリ(XAMPP + NetBeansで作ったPHP開発環境でデバッグできるようにする - 猫にWeb)で
NetBeansPHPプログラムをデバッグでステップ実行できるようになりました。


今回はPHPのパッケージ管理ツールであるComposerを設定してNetBeansから利用する手順を紹介します。
パッケージ管理は依存関係もあるので、やはりツールにまかせたほうが得策です。
Composerを使うことでプロジェクト単位でパッケージ管理をすることができます。
他にもComposerにはオートローディングという機能があり、requireやincludeを書かなくても必要なライブラリのファイルを読み込んでくれます。
手順としてはこんな感じです。

1. Composerをインストールする

Composerは公式サイトからインストーラーをダウンロードしてインストールすることもできますが、
コマンドプロンプトで実行した方が楽チンなので、コマンドでインストールします。
コマンドによる手順も公式サイトに書かれています。
phpがあるディレクトリに移動して以下のコマンドを実行します。

> cd c:\xampp\php
> php -r "readfile('https://getcomposer.org/installer');" | php
> echo @php "%~dp0composer.phar" %*>composer.bat

上記が終わって以下のコマンドを実行してバージョンが表示されたらOKです。

> composer -V
> Composer version 1.0-dev (4d134ce8a2aacb9566fee8deb8c514248fd2a983) 2015-04-08 13:43:49

2. NetBeansPHPインタプリタを設定する

「ツール」 → 「オプション」 → 「一般」を選択し、
PHP 5インタプリタ」にphpのパスを設定します。


3. NetBeansにComposerを設定する

「ツール」 → 「オプション」 → 「フレームワークおよびツール」を選択します。
左サイドから「コンポーザ」を選択して、「コンポーザ」に手順1で作成したcomposer.pharを設定します。

ネットでよくある手順では、ここから新規にプロジェクトを作成して、
プロジェクトを選択して、「コンポーザ」の「初期化」を選択するのですが、
私の環境では以下のエラーが発生しました。

[RuntimeException]
JSON encoding failed: Malformed UTF-8 characters, possibly incorrectly encoded

色々調査したのですが、根本的な解決法は見つけられませんでした。
ただし、NetBeansで「コンポーザ」の「初期化」時にやっているのは以下のコマンドを実行して、
composer用の設定ファイルであるcomposer.jsonを作成しているだけです。

php composer.phar init

そこで以下の手順を追加で実施して解決しました。

4. 環境変数PHPのパスを追加する。

環境変数の「Path」にPHPのパスを設定します。
私の環境ではCドライブ直下にXAMPPをインストールしたので「C:\xampp\php」になります。

5. 初期化コマンドを直接実行する

コマンドプロンプトを起動して、作成したプロジェクトの直下に移動して以下のコマンドを実行します。
プロジェクトからcomposer.pharファイルへの相対パスを指定してください。

> php ..\..\php\composer.phar init

色々聞かれますが、後から修正できるので全部デフォルトでOKです。
ただし、Authorはフォーマットを「John Smith 」にしなければ次の項目にいけません。
それとラスト2つの質問はNOでOKです。

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

これでcomposerの設定ファイルcomposer.jsonがプロジェクト配下に作成されます。


ここでぶっちゃけるとcomposer.jsonはこんなファイルなので手動で作っても全然OKですw

{
    "name": "necoyama3/sample",
    "authors": [
        {
            "name": "necoyama3",
            "email": "necoyama3@gmail.com"
        }
    ],
    "require": {}
}

これで準備はOKです。
「コンポーザ」 → 「依存性の追加」で好きなライブラリを検索して依存関係を含めたライブラリをダウンロードして管理することができます。

以上です。お疲れ様でした。
改めて思うのはWindowsで軽量言語の開発はするべきじゃないんだけど、
仕事の都合でしかたないのよね。