ComposerとPackagistでPHPライブラリを開発、テスト、公開する(2/2)
今回は、前回ComposerとPackagistでPHPライブラリを開発、テスト、公開する(1/2)で作成したライブラリをPackagistに公開します。
Packagistって
PackagistはComposerのメインリポジトリとなるサイトです。

ここで公開しておくことでcompser.jsonにリポジトリの指定をしなくてもライブラリを取得できるようになります。
ライブラリのGit管理
Packagistでの公開する場合は、ライブラリをGit管理しましょう。
.gitignoreの準備
以下の内容で.gitignoreを作成しておきます。
.gitignore
vendor/
composer.lock
composer.phar
資産のコミットとタグ付け
ライブラリが公開できるようになったら、資産をコミットします。 このとき、タグも一緒につけてください。このタグがバージョン番号としてPackagistで使われます。
$ git tag 1.0.0
タグ名(バージョン番号)はx.y.zの形式を使うようです。
Githubへの公開
タグ付けまで終わったら、Githubにリポジトリを作成して、プッシュします。 このとき、通常のプッシュに加えてタグのプッシュも行います。
ちなみに後述のServiceHookの仕組みを使う場合、タグがプッシュされたタイミングでPackagist側が更新されます。
$ git push origin master
$ git push origin タグ名
Packagistへの公開
いよいよ、Packagistに公開です。
composer.jsonをチェック
公開情報に問題がないか以下のコマンドで検証します。
$ php composer.phar validate
./composer.json is valid
上記のような結果が出ればOK。
アカウント取得
まずはPackagistにアクセスしてアカウント取得を行なってください。 特に難しいことはないはずです。
ライブラリの登録
ログイン後、画面上部にSubmit Packageボタンがあるので押下します。

画面下部のRepository URL欄に先ほどGithubで公開したリポジトリのURLを入力します。
ライブラリ名が重複してなければSubmitボタンが出るので押下します。

パッケージの公開が完了です!

自動更新を設定する
上記の手順までで公開はできていますが、Github側に下記手順を行なっておくことで、ライブラリの更新が自動的にPackagistに反映されるようになります。
ServiceHookの設定
公開したリポジトリでSettingsを押下します。

再度メニューからServiceHookを選択、一覧からPackagistを選びます。

必要な情報を入力します
- User: Packagistのユーザ名
- Token: PackagistのYour API Tokenで取得
- Domain:
http://packagist.orgで問題無さそう - Active: チェックをいれる

接続テスト
設定が完了したら、もう一度PackagistのServiceHook設定ページを表示します。
Test Hookボタンが表示されているので押下します。

Packagist側でNot Auto-update表記が消えていれば接続テスト成功です。
公開したライブラリを使う
公開したライブラリを使うには、通常、プロジェクトのcomposer.jsonに以下の記述後、php compser.phar installを行いますが、
{
"require": {
"monochromegane/query-builder": "dev-master"
}
}
php composer.phar require monochromegane/query-builder:dev-masterコマンドを使うことで設定ファイルへの追記、インストールを一度にやってくれます。
ComposerとPackagistを使うことでPHPのライブラリ管理がとてもやりやすくなるので、どんどん使っていきましょうー。
PHP: The Right Way!