📖
Laravel composer.jsonでのバージョン指定方法
はじめに
composer.jsonにて、パッケージをインストールする際、バージョンの指定方法がわからなかったので、簡単にまとめます。
composerとは
そもそもcomposerとは、PHPのバージョン管理ツールです。
composerを使用してライブラリやフレームワークをインストールする際、相互関係を確認してくれたり、必要なライブラリを一緒にインストールしてくれたりする管理役です。
rubyでいうところのbundlerですね。
composer.jsonとは
依存するパッケージを定義するためのファイルです。
こちらに記載されたパッケージやライブラリを元に、composer installによってインストールされます。
composer.lockとは
一度、composer install を行うと自動的に作成されるファイルです。
ここには、インストールされたファイルが記載されています。composer.jsonの記録台帳のようなものです。
2回目にcomposer installを行なった場合、こちらのファイルを参照します。
記録台帳のようなものなので、こちらのファイルは書き換えたりはしません。
バージョン指定方法
composer.jsonを見ると
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"require": {
"php": "^7.2",
"bensampo/laravel-enum": "^1.37",
"doctrine/dbal": "^2.10",
"fideloper/proxy": "^4.0",
上記のような記述になっており,
requireの部分にパッケージが記載されています。
ex.)phpであればバージョン7.2~
そして、コロン(:)の左側がパッケージ、ライブラリ名、左側がバージョンとなっています。
""
バージョン指定では レンジ(<=)、アスタリスク(*) キャレット(^) チルダ(~) が使用されます。
レンジは記載の通りになりますが、それ以外については、下記のようになります。
バージョン | 範囲 | 補足 |
---|---|---|
1.* | 1.0.0以上、2.0.0未満 | *には何でも入る |
^1.0 | 1.0.0以上、1.1.0未満 | 一番左側にある、ゼロでないバージョンは変えない |
~1.0 | 1.0.0以上、2.0.0未満 | 一番左側にあるバージョン固定で、それまでのバージョンは変わる |
さいごに
そもそも^ ←の読み方が分からなかったので、良い勉強になりました。
キャロットと間違わないように気をつけます。
Discussion