composerについて学ぼう
いつも開発をするとき、composer installとかupdateとかやる。
すると、勝手にその機能が使えるようになる。
でも、どんな仕組みなんだ?というのがイマイチ分からない。
なので、例えばドキュメントの少ないパッケージの場合s、composerを使ってインストールしても、
このあとどうするんだ?となって、その機能を使えないまま諦めてしまっていた。
今後はそういうのをなるべく無くして、「こういう仕組みなんだから、こうすれば動くはずだ!」と考えて行動できるようになりたいと思った。
参考サイト
こちら。
PHPのライブラリ管理ツール「Composer」入門 |
PHP |【パッケージ管理】Composerの使い方 - わくわくBank
composerとは
パッケージを管理するツール。
パッケージ間のバージョン関係も管理してくれる。
パッケージってのはphpが使える技のこと。
普通の何もしないphpって結構出来ることが少ないので、開発を楽にするには新しい技を覚えさせる必要がある。
ただ、技Aを使うには技Bを強化しないといけない、みたいなことが起こり得る。
そんなときにcomposerは自動的に技Bを強化してくれる。
どうやって読み込んでるんだ?
composer installすると、autoload.phpってのが作成される。
こいつをパッケージを使いたいphpファイルから読み込む。
するとパッケージが使えるようになる。
使い方
composer install
composer.lockに書かれたパッケージをインストールする。
開発するときは基本これ。
何故なら、メンバー全員が同じバージョンで同じパッケージをインストールできるから。
composer.lockは、composer update時に作成されて、その時にこういうのをこういうバージョンでインスト―ルしたよ~というのを記述してくれる。
そして基本的に変更できない。
なので、いつcomposer installを行っても結果は同じはずである。
composer update
composer.jsonファイルに記述された内容を元にパッケージを更新する。
つまり、composer.lockが更新されてしまう。
なので複数人で開発するときに行うものではない。
個人で勝手にやっちゃうと、自分だけ別バージョンで開発進めちゃうことになる。
そうすると、本番で動かしたいバージョンでは動きませんでしたとか、他のメンバーが動かせませんでしたとか、なって、ちょっと面倒なことになる。
composer require
これは新しいパッケージを追加する。
これもcomposer.jsonとかlockが書き換わるから複数で開発してるならポンポンやっていいものでもない。
updateよりは安全だと思う。
バージョン指定法
毎回composer.jsonにバージョン指定するとき悩む。
意味が分からないから。
~とか^とか。
毎回調べてて話にならないので、これを機に覚えようと思った。
[初心者向け] composerのバージョン指定方法 | QUARTETCOM TECH BLOG