THINKING MEGANE

ComposerとPackagistでPHPライブラリを開発、テスト、公開する(2/2)

今回は、前回ComposerとPackagistでPHPライブラリを開発、テスト、公開する(1/2)で作成したライブラリをPackagistに公開します。

Packagistって

PackagistはComposerのメインリポジトリとなるサイトです。

Packagist

ここで公開しておくことで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ボタンがあるので押下します。

Submit Package

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

Check Package

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

Package Not Auto-update

自動更新を設定する

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

ServiceHookの設定

公開したリポジトリでSettingsを押下します。

Settings

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

ServiceHook

必要な情報を入力します

  • User: Packagistのユーザ名
  • Token: PackagistのYour API Tokenで取得
  • Domain: http://packagist.orgで問題無さそう
  • Active: チェックをいれる

Update Settings

接続テスト

設定が完了したら、もう一度PackagistのServiceHook設定ページを表示します。

Test Hookボタンが表示されているので押下します。

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!

このエントリーをはてなブックマークに追加