周辺知識

composerコマンド(早見表)

通常、Laravel は composer経由 でインストールします。

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

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

今回はcomposerコマンドをまとめてみました。

composer 自体のインストール方法


$ curl -sS https://getcomposer.org/installer | php

インストールが完了すると composer.phar ができます。
パスを通すなら、すでにパスの通っている /usr/local/bin へ移動し、名前も composer に変更します。


$ mv composer.phar /usr/local/bin/composer


 

ファイルに関して

composer.jsonについて

依存するパッケージを定義するためのファイルです。
create-projectコマンドで Laravel をインストールすると自動的に作成されます。
インストール先は、Public Repository である Packagist から依存パッケージを検索・選択することができます。

Packagistとは

composer の中央公開リポジトリです。だれでもパッケージを公開することができます。パッケージのインストールはここから検索・インストールします。

composer.lockについて

composer installをすることで composer.lock が生成されます。
install コマンド実行時に、composer.lock ファイルが存在する場合は composer.lock に書き出されているバージョンをダウンロードします。

POINT!

チーム間で同じバージョンをダウンロードするためにあります。なので、composer.json、composer.lock 一緒にコミットします。

 

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

composer 経由でパッケージをインストールする場合2つやり方があります。

  • installコマンド・・・composer.json にパッケージ名を追記してinstallコマンドを実行(手動)
  • requireコマンド・・・composer を使って直接パッケージ名を指定してインストールする場合です。
installコマンド

ワーキングディレクトリの composer.json を読み込んで依存するパッケージを vendor ディレクトリにインストールします。


$ composer install

requireコマンド

composer.json の requireパッケージを追加/更新するコマンドです。installコマンドでの手動更新してもいいのですが、このコマンドの方が楽。


$ composer require { ベンダ名/パッケージ名 } バージョン

チェック
オプション「-dev」を付けると開発環境用になります。

updateコマンド

最新バージョンの依存関係を取得し、composer.lock を更新するのに使用します。


$ composer update

特定のパッケージのみ更新したい場合

1)composer.json の値を更新したいバージョンに書き換える
2)composer update { 更新したいパッケージ名 } を実行
3)更新後のライブラリがインストールされ、composer.lock が最新に上書きされる
create-projectコマンド

現在、PHPフレームワークの新規プロジェクトを作成するときは、composer 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を使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-周辺知識