Open3

composer 学習

plaincode_jpplaincode_jp

これまでcomposerを雰囲気で使ってたが、既存の環境がおかしくなって戻せない、などを反省し学習のメモ。

composer とは

  • PHP開発では必須の、パッケージの依存を管理するツール
  • パッケージの依存関係を解消してくれる
  • composerで扱えるパッケージは、取得元となるリポジトリhttps://packagist.org/ に登録されている

composer.json

  • インストールしたいパッケージをバージョンとともに、定義するファイル
  • 手動で作成
  • composer init コマンドで、対話式に入力・作成もできる

composer.lock

  • パッケージがインストールされると、プロジェクトルートに追加されるファイル
  • インストールされたパッケージのバージョンのリストがcomposerにより書き込まれる
  • composer.lock に書かれたバージョンに(composer.jsonの内容に関わらず)ロックされる
  • composer.lock が存在しない場合、パッケージとバージョンをcomposer.jsonから読み、ロックファイルが生成される
  • パッケージをアップデートしたい場合、updateコマンドを実行することで、composer.json に従い、新しいバージョンにアップデートされる

composer.phar

  • composer の実行ファイル
  • composer の機能を一つのファイルにまとめたアーカイブ形式のファイル

各種コマンド

  • composerの動作確認/バージョン確認/コマンドの一覧
$ php composer.phar
  • install

composer.lockファイルの内容に従い、パッケージをインストールします。(composer.lockがなければ、composer.json の定義により生成)

$ php composer.phar install
  • update

composer.jsonに従って、依存関係にあるものを最新のバージョンにアップグレードし、composer.lockファイルを更新します。

$ php composer.phar update
  • require

パッケージを指定してインストールし、jsonとlockに追加される。

php composer.phar require <vendor>/<packageName>
ex)
php composer.phar require psr/log
  • dump-autoload

クラスautoloader の更新

$ php composer.phar dump-autoload
plaincode_jpplaincode_jp

パッケージupdate の前に依存関係の更新を確認する

composer update --dry-run

// 特定パッケージを更新した場合の確認
composer update --dry-run <vendor>/<packageName>