今年はなんだか仕事でLaravel付いています。
最近のバージョンのLaravelを使いながら、すごいなーと思う一方、フレームワークにしては自由なところが多いから、それがLaravelの欠点なのかな、なんてことを考えています。
さて、そんなLaravelですが、動作させるのに必要となるのがComposer!ComposerがないとLaravelは使えません!
よって、Laravelを使うときは何かとcomposer require ●●とかその辺のコマンドを使用することが多くなります。
今回はComposerコマンドで何かを導入するときによく使うコマンドの違いについてブログに書いておきたいと思います!
前提として、以下の内容は全て「composerコマンドが実行できる環境」であること、つまりComposerがインストールされた状態で行うものとします!
目次
composer.jsonとcomposer.lockについて
composerコマンドを知る上で、押さえておきたい基本としてcomposer.jsonとcomposer.lockという2つのファイルについての意味や違いを知ることが挙げられると思います。
それぞれの意味や違いについて見ていきましょう!
composer.json
composer.jsonは、プロジェクトで利用するパッケージの一覧が記載されています。このcomposer.jsonの中身をみて後述のcomposer requireやcomposer installコマンドが実行されているとお考えください!
それに対して、composer.lockファイルは、実際にインストールしたパッケージの細かいバージョンが記録されるというものになります!
| 手動での編集 | 書かれている内容 | |
| composer.json | する | 必要とするパッケージ名。 ざっくりとしたバージョン指定がなされていることも。 |
| composer.lock | しない | インストールした結果、インストールされたパッケージの名前やバージョンなどが細かく記されている |
上の表に簡潔にまとめてみました!
Composer require ●●について
それでは、それぞれのComposerコマンドについて触れていきたいと思います!
まずはcomposer require ●●というコマンドについて書いてみたいと思います!
これは文字通り、composerを使って作られた何かのパッケージ(PHPで作られたコードのかたまりで構成された機能群)をインストールするものになります。
composer require laravel/passport
例えば、上のコマンドはLaravel Passportというパッケージをインストールするためのコマンドになります!
composer require laravel/passport:12.0
上のようにバージョンを示す数字を末尾のコマンドにくっつけることで、指定したバージョンのパッケージをインストールします!
composer requireコマンドの大きな特徴としては、composer.jsonファイルに書き込みがなされるということです。
composer.jsonは、composerコマンドを使って導入された各種パッケージの導入リスト一覧が記載されているものとお考えください!
composer requireコマンドを使って新しいパッケージが導入されるということは、導入リスト一覧であるcomposer.jsonの中身が書き変わったり、新しい内容が追加されるということになるわけですね!
composer installコマンドについて
次に、composer installコマンドについてです!
composer installコマンドは、「実行時点でcomposer.jsonファイルに記載されているパッケージをインストールする」ためのコマンドになります。
composer install
composer requireコマンドとの違いについては、
- composer require・・・
composer.jsonファイルの書き換えが発生する - composer install・・・
composer.jsonファイルの書き換えが発生しない
という違いがあります。
composer updateコマンドについて
では次に、composer updateコマンドについて見ていきましょう!
composer updateコマンドは、各パッケージを原則最新バージョンに更新するためのコマンドになります。
composer update
updateの後ろに何も指定をしないと全パッケージが更新対象になってしまうため、特定のパッケージを更新したい場合は、
composer update laravel/passport
上のように、パッケージ名を後ろに添えてあげるようにします。
使い分けに関する注意点
これまで触れてきた内容を踏まえて、いくつか注意点を掲載させていただきます!
- 新しいプロジェクトを作り始める場合は、
composer.jsonから書き始める。逆にいうと1番最初はcomposer.lockファイルは存在しない。 composer install実行時、composer.lockファイルがある場合はそれを優先してパッケージをインストールするcomposer updateはcomposer.jsonファイルに基づいて新しいバージョンをインストールし、composer.lockファイルを更新する
この点だけ抑えておけば、バッチリということですね!
まとめ
ということで今回は、composerコマンドについて、それぞれの意味と違いを含めて紹介させていただきました!


