2016-03-25

【PHP】独自パッケージを composer で使えるようにする方法

以前「Laravel の独自パッケージを作成する「PackageCreator」を公開しました」で書いたように、今回は作成した独自パッケージを公開し、さらに composer でインストールするまでを紹介したいと思います。



手順としては、以下の2点です。

1.Githubへパッケージをアップする 
2.Packagistへパッケージ登録

(※事前準備として、GithubPackagistにアカウント登録し、composer 、git が使えるようにしておいてください。)



それでは、ひとつずつ見ていきましょう。


1. Githubへパッケージをアップする

まずGithub にログインし、独自パッケージ用のレポジトリを作成します。
右上にあるボタンをクリックした時に出てくる「New repository」をクリック。



パッケージ名と説明文を入力、さらに「Initialize this repository with a README」にチェック✔を入れてボタンをクリックすれば完了です。



次にローカル環境でターミナルを開き、cd コマンドをつかって独自パッケージのディレクトリまで移動しましょう。


ここで git の初期化コマンドを実行します。

git init


そして、git pull を使って先ほど Github レポジトリからファイルを取り込みます。

git pull https://github.com/xxxxxxxx/xxxxxxxx.git

※ちなみに、レポジトリの git URLは以下の場所に書かれています。




はい!
これでローカル環境からファイルをアップロードできるようになりました。



続いて composer init を使って composer に必要なファイル「composer.json」を作成しましょう。
以下のコマンドを実行すると、パッケージ名や説明文を聞かれるので入力していきます。
重要なのは以下の3つ。

Package name (<vendor>/<name>)  ・・・ パッケージ名
Description ・・・ パッケージの説明文
License・・・ パッケージのライセンス。後でPackagistで注意されるので^^;

これで composer.json が出来上がります。


ちなみに、もしコマンドラインが好きじゃない人は普通に composer.json を作ってもOKですし、後から変更するのも普通にエディタから変更することができます。


そして、README.md も適宜変更しましょう。
このファイルは markdown という形式で作成する必要があります。(こちらのページがとても便利だと思います。)


さぁ、それではやっと Github へのアップロードです。
実際には以下のようにして行います。

git add .
git commit -m="First commit"
git push https://github.com/xxxxxxxx/xxxxxxxx.git master

この時ログインID, パスワードを聞かれたら入力してください。
アップロードがうまくいっていれば Github ページが変更になっているはずです。


はい!
ここまでがGithubへのアップロード手順です。



(今回は記事が長いね...分けたほうが、良かったね....)



2.Packagistへパッケージ登録

では次に packagist です。
ログインして右上の「submit」から登録ページへ移動し、githubで先ほどつくったページのURLを入力してパッケージを登録します。


これでパッケージが composer からインストールできるようになっているはずです。
実際にはこのような形になります。

composer require sukohi/xxxxxx:dev-master

※sukohi/xxxxx の部分は composer.json の name にかかれている値です。



ちなみに、Github のウェブフックを使えば git push されるたびに自動で packagist も最新版にアップされるのでぜひ設定しておきましょう。
やり方はこんな感じです。

1.まず packagist からトークンを取得します。


2.先ほどつくった Github のパッケージページから setting > Webhooks & services へ移動し、「Add Service」ボタンの中から Packagist を選択します。
すると、以下のようなページが表示されるので先ほど Packagist のユーザー名と取得したAPIトークンを入力しましょう。

これでウェブフックの設定は終了です。


(あと1トピックだけ、、、)


また将来のことを考えると git で 1.0 や 1.0.0などブランチとタグをつかってバージョンを作成しておくといいと思います。
やり方は以下。

(ブランチ)

git branch 1.0
git checkout 1.0
git push https://github.com/xxxxxxxx/xxxxxxxx.git 1.0

(タグ)
git tag 1.0.0
git push https://github.com/xxxxxxxx/xxxxxxxx.git 1.0.0

※もしバクを修正したり新しい機能を追加したらブランチを同じようにpush し、タグを「1.0.1」というのようにバージョンを上げて push しましょう。
ウェブフックを設定しているなら自動で packagist も最新版になっているはずです。


composer でバージョンを指定してインストールするには以下のようにします。

composer require sukohi/xxxxx:1.*

はい!
これで終了です。

独自パッケージを作って公開しておけば、後から同じ作業を省略できますし、もしバグがあれば他のユーザーから教えてもらえるかもしれないのでメリットは多いですよ!

なにより自分のパッケージにスターがついたりするととてもテンションが上がります。
ぜひみなさんもトライしてみてくださいね。
ではでは〜!(^o^)


 (スマホで記事の原案を書くとなぜか記事が長くなるなー)


0 件のコメント:

コメントを投稿