読者です 読者をやめる 読者になる 読者になる

composerで自作ライブラリをインストールしたくて

したくて。

共通の処理ってあるじゃないですか。 Webアプリケーションの場合大抵のロジックはモデルに集約されていると思うんですけど、モデル間で共通のロジックってのはやっぱりあって。

ただ、多くのWebアプリケーションフレームワークって、一応ディレクトリ構造が決まっていて、大体こういった共通の処理を抜き出して置いておくいい感じのところが無いんですよね。 だからなんかルートディレクトリに Library とかディレクトリ作って云々... これがもうめちゃ微妙で、気づいたら Library 以下のソースにプロジェクト依存したコードが紛れてやれやれって感じに仕上がる。 なので、composer使いたくなる。 で、自作のライブラリをcomposerでインストールするのに3時間くらいハマったのでイライラしながらこれを書いてる。

結論から言うと、composerでライブラリをインストールするには以下の手順が必要になる。

後述と書いておきながらいきなりPackagistの話する。 結局は、Packagistに登録しなくてもうまくやる方法はあるらしい。 ただ、今回はちょっと調べきる時間が無かった(こんなものを書くくらいなら調べればいいんだけどもうちょっとどうでも良くなってきてる)。 composerのautoloaderの仕組みを良くわかっていないという点なんだと思うけど、Packagistに登録していない段階ではautoloadされず使えなかった。(ちなみにWAFはLaravel) これに数時間悩み、なんでやねんってなってたけど、Packagistに登録するとすんなり行けた。(vender/composer/autoload...にうまく追加された。ソース読んでないので理由はわからない。) ...まぁ取り敢えず目的は果たせたし、また思い立った時にソース読む。

で、意図せず自作ライブラリを公開してしまったわけだけど、これはこれでなんというかなかなか良い体験だった。というと素晴らしいライブラリが公開されたかのようだけど、内容はどうでも良くて(実際、メソッドは2つしかないしゴミみたいなライブラリで、、)

  • 共通処理を抜き出す試み
  • ドキュメントを正しいのかどうかもわからないけ英語で書いてみるチャレンジ
  • ゴミみたいなライブラリでもcomposerで自作ライブラリがインストールされる様を見るとちょっと嬉しい

こういったものが体験出来た。 ちなみにリポジトリは以下。(ホントは見せるのも恥ずい。。んだけどまぁいいや。。) https://github.com/hatajoe/php-easy-lottery

まぁ取り敢えず、ゴミだろうがなんだろうが、今後も作ったものは表に出して行くという行為をしてみようかなと思った。