今年はなんだか仕事で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コマンドについて、それぞれの意味と違いを含めて紹介させていただきました!