Composerについて(実践編)

2018/10/12

Laravel自体のインストールやLaravelで使用するパッケージは Composer を使っていれます。

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 install
新しいバンドルを追加したいとき ⇒ 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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-周辺知識