2018/10/12
Laravel自体のインストールやLaravelで使用するパッケージは Composer を使っていれます。
Composer の基本的な説明は前回やりました。
今回は実際に使用するにあたってもう少し細かい Composer の使い方についてエントリーします。
各ファイルの役割
Laravel をインストールするとプロジェクトに composer.lock と composer.json ができます。
各ファイルの役割を解説していきます。
composer.json
composer はプロジェクトルートの composer.json ファイルにライブラリを記述することで依存関係の管理を行います。
パッケージを追加する場合は composer.json を編集し、composer update コマンドを実行します。
例)PHPUnit をインストールする場合
1)composer.jsonを編集
{ "require": { "php": ">=5.5.9", "laravel/framework": "5.2.*", "phpunit/phpunit": "3.7.*" // 追加 } }
2)composerコマンドを実行
> composer update
新しいバンドルを追加したいとき ⇒ composer.jsonに記述 + composer update
これで PHPUnit のインストールが完了です。
ライブラリ(PHPUnit)はvendorディレクトリ下に格納されます。
composer.lock
composer update コマンドで PHPUnit を入れると同時に composer.lock にバージョン情報が記述されます。
ローカル環境で問題ないことが確認できれば composer.lock をサーバーにUPして composer install コマンドを実行します。
$ composer install
これで composer.lock に記述されている各ライブラリをインストールします。
ローカルと同期をとることができます。
composer.lock は require,update した時に自動的に更新されるファイルです。
なので、絶対にエディタを使って更新してはいけません。
composer.lockとcomposer.jsonの違い
composer.lock と composer.json は混同しがちです。
ローカルでは
1)composer.jsonにパッケージを追加
2)composer updateコマンド
がメインになります。
ローカルで問題なければ本番サーバーにも反映させます。
サーバーでは
1)composer.lockをUP
2)composer installコマンド
がメインになります。
composer.jsonの書き方
例えばdoctrine/dbal を追加するとします。
流れとしては
1)composer.jsonに記述
2)composer update コマンドの実行
となるのですが、このときの composer.json の書き方を説明します。
"パッケージ名" : "バージョン"
パッケージ名は必ず <ベンダー名>/<パッケージ名> という構成になっています。
"require": { : "doctrine/dbal" : "2.*" //バージョン2系を指定 }
バージョン指定では アスタリスク(*) キャレット(^) チルダ(~) が使えます。
指定 | 対象となるバージョン |
---|---|
2.* | 2.0.0以上、3.0.0未満 |
^2.0 | 2.0.0以上、2.1.0未満 |
~2.0 | 2.0.0以上、3.0.0未満 |
キャレット(^)での指定はチルダ(~)と微妙に違います。
composerでのインストールについては以上です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。