[PHP] NetBeans: Composerを設定する

NetBeans 7.3 から対応した Composer を使ってみます。

参考サイト

NetBeans 次期リリース版での Composer サポートについて

設定

環境設定から「PHP – コンポーザ」を選択します。
参照ボタンをおして Composer コマンドを登録します。

NetBeans 2013-06-17 23-53-26

また、vendor, name, email を登録します。
これは生成される composer.json 内で利用されます。

Composer の実行

プロジェクト名を右クリック、init(初期化)します。

NetBeans 2013-06-17 23-53-27

composer.json がプロジェクト直下に生成されます。

.
├── application
├── composer.json
├── docs
├── library
├── nbproject
├── public
└── tests
composer.json
{
    "name": "<あなたのVendor名>/<プロジェクト名>",
    "description": null,
    "authors": [
        {
            "name": "<あなたの名前>",
            "email": "<あなたのメールアドレス>"
        }
    ],
    "require": {
    }
}

"description": null, は修正しないと、下のようなエラーが出ます。

[Composer\Json\JsonValidationException]
"composer.json" does not match the expected JSON schema:
- description : NULL value found, but a string is required

こんなファイルを作成しました。

  • ひとまず null は “null” にしました。
  • vendor-dir を Zend Framework が利用できるパスに置くように設定します。
composer.json
{
    "name": "<あなたのVendor名>/<プロジェクト名>",
    "description": "null",
    "authors": [
        {
            "name": "<あなたの名前>",
            "email": "<あなたのメールアドレス>"
        }
    ],
    "require": {
        "mrrio/shellwrap": "0.*",
        "monolog/monolog": "1.*"
    },
    "config": {
        "vendor-dir": "library/vendor/"
    }
}

プロジェクト名を右クリック、install(インストール)します。

.
├── application
├── composer.json
├── composer.lock
├── docs
├── library
│   └── vendor
│       ├── autoload.php
│       ├── composer
│       ├── monolog
│       ├── mrrio
│       └── psr
├── nbproject
├── public
└── tests

無事ダウンロードが完了しました。

パッケージの利用

library 以下に設置したので、いつも通りの形で利用できました。

Composer – インストール | deadwood

<?php
require_once 'vendor/mrrio/shellwrap/ShellWrap.php';
// require 'vendor/autoload.php';
use MrRio\ShellWrap as sh;
// List all files in current dir
echo sh::ls();