周辺知識

composer まとめ

2019/03/08

composer とはプロジェクトが必要とするライブラリやパッケージを管理し、それをもとにインストールする機能です。

端的にいうと、PHP の依存管理ツールですね。Linux でいう YUM や APT みたいなものです。

今回は composer についてまとめてみました。

 
INDEX

 

Composer自体のインストール

Linuxの場合

下記のページがわかりやすかったです。

Qiita - CentOS7にComposerをインストールする

 

Windowsの場合

以前、このサイトでエントリーしました。

 

パッケージのインストール


# パッケージを追加
$ composer require [vendor/package]

# 削除
$ composer remove [vendor/package]

# 開発で必要なものを追加
$ composer require --dev [vendor/package]

# 開発で必要なものを削除
$ composr remove --dev [vendor/package]

ポイント
composer.json インストールするパッケージ一覧
composer.lock インストールしたいパッケージに必要な関連パッケージを含めた一覧(※composer.jsonと同じ記述形式)
vendor インストールしたパッケージのソース本体

 

よく使うcomposerコマンド

installコマンド

composer.json に記載されたパッケージや依存を現在のプロジェクトにインストールしたいときに使用します。


# 1.ローカル環境ではcomposer requireコマンドが無難
# 2.ローカル環境で問題なければ composre.json + composer.lock を本番サーバへデプロイ
# 3.SSH でサーバにアクセスして以下のコマンドを実行
$ composer install

# さくらレンタルサーバの場合
$ php ../composer.phar install

# require-dev(開発用のパッケージ)にインストール
$ composer install --dev

# require-dev(開発用のパッケージ)はインストールしない
# ただし config/app.php にサービスプロバイダの記述があるとエラーになる
$ composer install --no-dev

ポイント

composer.lock がある場合 composer.lock からそのままパッケージをインストールします。
composer.lock がない場合は composer.json から依存関係を解決してインストールします。

updateコマンド


# composer.json に記載されているパッケージや依存をすべて最新にしたいとき
$ composer update

# composer.json に記載された特定のパッケージとその依存のみを最新にしたいとき
$ composer update [vendor]/[package]

# 開発用
$ composer update --dev

# 本番環境用
$ composer update --no-dev

ポイント

依存関係をアップデートするときに引数なしで composer update するのはやめたほうがいいです。

requireコマンド


# composer.json にパッケージを追加したい
$ composer require [vendor]/[package]

# composer.json に指定したバージョンのパッケージを追加したい
$ composer require [vendor]/[package]:2.1

# composer.json に指定したメジャー・バージョンの最新パッケージを追加したい
$ composer require [vendor]/[package]:2.*

# 開発用の方にパッケージを追加
$ composer require --dev [vendor]/[package]

removeコマンド

インストール済みのパッケージを削除したい場合


$ composer remove [vendor]/[package]

create-projectコマンド

パッケージをアップデートするとき、パッケージを追加・削除したいときに使用します。


$ composer create-project "laravel/laravel=5.2.*" { sampleproject }

dump-autoloadコマンド

名前空間を新たに記述したときはコマンドを叩いて autoload_classmap.php を更新します。
あと、マイグレーションコマンドが効かなくなったときとか、このコマンドを実行すると直ったりします。


$ composer dump-autoload

self-updateコマンド

composer 自体を最新にアップデートします。


$ composer self-update

チェックグローバルインストールしている場合はroot権限で実行します。
$ sudo composer self-update

 
composer のまとめについては以上です。

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-周辺知識