Sui’s blog

仕事関係のことや趣味に関すること、ふと思ったことを書いていこうと思います。

PHPの自作パッケージをComposerを使ってインストールするにはどうすればいいのか?

はじめに

PHPに関する話。
いつもComposerを使ってPHPのパッケージをインストールしているけど、何でComposerでインストールできるんだろう?
パッケージはどこにどうやって登録されているんだろう?
こんなことをふと思った。
調べてみるとPHPパッケージを登録するサイトがあり、そこに登録すればComposerでインストール可能になるらしい。
この投稿はそれを調べた時のメモ。

PHPのパッケージがComposerでインストール可能になるまでのStep

  1. PHPパッケージを作る
  2. 作ったPHPパッケージをPackagistというサイトに登録する
  3. Packagist登録後にComposerを使いインストールしてみる

Step1 公開したいPHPパッケージを作る

ディレクトリ構成

まずはPHPパッケージを作る。
しかし、PHPのパッケージのディレクトリ構成ってどのようにすればいいんだろう?早速迷ってしまった。
調べてみるとphp-pds/skeletonというPHPのパッケージを作る際のテンプレートを見つけた。それによると、

  • bin/
  • config/
  • docs/
  • public/
  • resources/
  • src/
  • tests/
  • .gitignore
  • LICENSE
  • README.md
  • composer.json

という構成が提案されていた。
別にディレクトリ名はこれと完全に一致させる必要はないらしい。

PHPパッケージ内のcomposer.jsonに書く内容

composer.jsonにこのパッケージが何者なのかを書く必要があるのだが、どのフィールドが必須になってくるのか分からなかった。
そこで、composer.jsonに指定できるフィールドを理解するためにComposerのdocumentのThe composer.json Schemaというページを読んだ。
そのページを読む感じだと下記のフィールドあたりが必須になってきそう。

  • name
  • description
  • type
  • license
  • authors
  • require
  • autoload

Step2 作ったPHPパッケージをPackagistというサイトに登録する

パッケージを作成後にPackagistというサイトで登録する。
登録の種類が2種類あって、

  • 公に公開したい場合はpackagist.org

  • プライベートなコードを同僚や顧客と共有したい場合はpackagist.com

に登録する。

例) 公に公開したい場合 packagist.org

packagist.org
赤枠部分にパッケージ登録の方法が記載されている。

Step3 Composerでインストールしてみる

後はComposerを使ってrequireコマンドをたたいてインストールするだけ。

composer require hoge/fuga

おわりに

簡単なパッケージでもいいので1度作って公開してみるといいかも。