[PHP]ComposerのCLIで利用できるコマンドの説明
こんにちは、@9ensanです。
PHPの依存管理ツールの「Composer」を使おうと思うとコマンドを覚えておいた方がいいと思うのでちょっと調べてみました。
以下解説になります。
全てのコマンドに有効なオプション
- –verbose(-v):詳細メッセージを表示させる。
- –help(-h):ヘルプを表示する。
- –quiet(-q):メッセージを表示しない。
- –no-interaction(-n):対話型のメッセージを表示しない。
- –working-dir(-d):作業フォルダを指定する
- –profile:メモリ使用量と実行時間を表示する。
- –ansi:ANSIカラーでメッセージを出力する。
- –no-ansi:ANSIカラーを使用せずにメッセージを出力する。
- –version(-V):バージョンを表示する
init
composer.jsonを作成するコマンド、手で書くよりは少し簡単に作成できる。
php composer.phar init
オプション
- –name:パッケージ名
- –description:パッケージの説明
- –author:パッケージの作者名
- –homepage:パッケージのホームページ
- –require:必要なパッケージのバージョン制約。記述方法:foo/bar:1.0.0
- –require-dev:開発版パッケージに必要なパッケージのバージョン制約。記述方法は、–requireと同じ
- –stablility(-s):minimum-stabilityの値を設定する。
install
ワーキングディレクトリのcomposer.jsonを読み込んで依存するパッケージをvendorディレクトリにインストールします。
composerのパッケージダウンロード方法には2通りあります。
- source:開発の為に使用されます。gitのようなソースコードリポジトリからダウンロードされます。ダウンロードされたパッケージのリポジトリ上での変更が欲しい場合に取得する事ができます。
- dist:パッケージデータをパッケージ化されたバージョンです。リリース版や、安定版になります。
の2種類です。
それぞれ、–prefer-source、–prefer-distオプションでダウンロード先を指定できます。
パッケージの詳細を見ることのできるshowコマンドを使うことで対象パッケージのdistとsourceの詳細を確認することができます。
php composer.phar install
オプション
- –prefer-source:バージョン管理システムの情報含めインストール可能な場合、パッケージを「source」からインストールします。
- –prefer-dist:開発バージョンでも、パッケージを「dist」からインストールします。
- –dry-run:パッケージを実際にインストールせずに、シミュレーションで何が起こるかを見ることができます。
- –dev:「require-dev」に指定されたパッケージのインストールを有効にします。
- –no-scripts:composer.jsonで指定されたスクリプトの実行を飛ばします。
- –no-custom-installers:カスタムインストーラーを無効にします。
- –no-progress:ダウンロードの進行状況を表示させない。
- –optimize-autoloader(-o):vendor/composer/autoload_classmap.phpにPSR-0に従ったPHPファイルのクラスマップを展開してオートローダーを最適化します。
update
最新バージョンの依存関係を取得し、composer.lockを更新するのに使用します。
php composer.phar update
特定のパッケージのみを更新したい場合は、引数に更新対象パッケージ名を渡す事で指定できます。
php composer.phar update vendor/package vendor/package2
オプション
以下のオプションが存在しますが、全て「install」コマンド時と同様の内容になります。
- –prefer-source
- –prefer-dist
- –dry-run
- –no-scripts
- –no-custom-installers
- –optimize-autoloader
require
composer.jsonのrequireパッケージを追加/更新するコマンド
php composer.json require
requireパッケージを追加更新後に、パッケージのインストール、アップデートが行われます。
もし、必要なパッケージを対話的に選択したくない場合は、コマンドに引数として渡すことが出来ます。
php composer.phar require vendor/package:2.* vendor/package2:dev-master
オプション
- –prefer-source:installと同様
- –prefer-dist:installと同様
- –dev:installと同様
- –no-update:依存関係の自動アップデートを無効にします。
- –noprogress:installと同様
search
現在のプロジェクトパッケージリポジトリからパッケージの検索ができます。
通常はpackagistから検索されます。
単純に検索したい言葉をコマンドに引数として渡す事で検索することが出来ます。
php composer.phar search monolog
オプション
- –only-name(-N):名前のみ検索対象にする。(descriptionを検索対象にしない)
show
利用出来るパッケージを全て表示します。
php composer.phar show
特定のパッケージ名を引数に渡す事で、パッケージの詳細を見る事ができます。
php composer.phar show nasneg/hello-world
オプション
- –installed(-i):インストールされたパッケージの一覧を表示します。
- –platform(-p):プラットフォームパッケージのみ表示します。(phpやextensions)
- –self(-s):ルートパッケージの情報を表示します。
- –dev:–installedか–platformと合わせた時、dev-requireパッケージも含んで表示します。
dependes
特定のパッケージに依存したパッケージを問い合わせる事ができます。
リストに表示されるリンクタイプ(require、require-dev)を指定できます。
php composer.phar depends --link-type=require monolog/monolog
オプション
- –link-type:指定したリンクタイプを表示する(require、require-dev)複数指定も可能です。デフォルトでは、両方指定されています。
validate
composer.jsonの妥当性をチェックします。
composer.jsonをcomiitする前や、tagをリリースする前に実行するべきです。
php composer.phar validate
status
ソースからインストールした依存関係のソースを修正する必要がある時、ローカルでの修正したかチェックできます。
php composer.phar status
試してみたら、–prefer-sourceでインストールしたrequireのパッケージの修正のみ変更内容が表示されました。(require-devのパッケージは修正しても表示されませんでした。)
self-update
composer自体を最新にアップデートします。
php composer.phar self-update
グローバルインストールしたているバア合いroot権限で実行する必要があります。
sudo composer serf-update
config
ローカルのcomposer.jsonファイルかグローバルのconfig.jsonファイルのどちらかのいくつかの設定を編集できます。
使用方法
php composer.phar config [options] [setting-key] [setting-value1] ... [setting-valueN]
- setting-key:設定オプション名
- setting-value1:設定値
githubプロトコルのような配列の値を取ることのできる設定では、1つ以上の設定値を渡すことが許可されています。
※configの細かい設定値については次回以降の記事で詳しく記述する予定です。
設定内容を確認
php composer.phar config --list
オプション
- –global(-g):グローバルの設定ファイルにコマンドを適用します。(デフォルト:$COMPOSER_HOME/config.json)
このコマンドを指定しなかった場合ローカルのcomposer.jsonファイルか–fileで指定されたファイルに適用します。 - –editor(-e):ローカルのcomoser.jsonファイルをEDITOR環境変数で指定されているテキストエディタで開きます。
–globalオプションが指定されていた場合はグローバル設定ファイルを開きます。 - –unset:setting-keyで指定された設定要素を削除します。
- –list(-l):設定情報を一覧表示します。
- –file=”…”(-f):composer.jsonの代わりに操作するファイルを指定できます。
–globalオプションと組み合わせて利用する事はできません。
create-project
既存のパッケージから新しいプロジェクトを作る為にComposerを使う事ができます。
これはvendorのcomposer installによってgit cloneやsvn checkoutを行うのと同じです。
- アプリケーションパッケージをデプロイすることができます。
- どんなパッケージでもチェックアウトできて、試しのパッチで開発が進められます。
- 複数開発者でのプロジェクトで、開発の最初の設定を助ける機能になります。
Composerを使って新しいプロジェクトを作る為にcreate-projectを利用できます。
パッケージ名、プロジェクトを作成するディレクトリ、バージョンを引数で指定できます。バージョンを省略した場合は最新版が利用されます。
php composer.phar create-project doctrine/orm path 2.2.0
オプション
- –repository-url:packagistの代わりにパッケージの検索に使われるカスタムリポジトリを指定します。
composerリポジトリのURLか、ローカルのcomposer.jsonを指定することが出来ます。 - –stability(-s):initと同様
- –prefer-source:installと同様
- –prefer-dist:installと同様
- –dev:installと同様
- –no-custom-installers:installと同様
- –no-scripts:installと同様
- –no-progress:installと同様
- –keep-vcs:作成されたプロジェクトのバージョン管理システムメタデータの削除をスキップします。
これは非対話モードで実行する時に便利です。
dump-autoload
クラスマップに新しいクラスを追加する為にオートローダーを更新する必要があるなら、installコマンドや、updateコマンドではなくdump-autoloaderを使うことができます。
さらに、パフォーマンスの為にPSR-0のパッケージをクラスマップに展開してオートローダーを最適化することができます。
大きなアプリケーションはたくさんのクラスが使用されていてオートローダーがリクエストのかなりの時間を取ります。
クラスマップを使うことで開発は不便になりますが、この–optimizeオプションを使うことで便宜上PSR-0と、クラスマップのパフォーマンスを利用出来ます。
オプション
- –optimize(-o):高速なオートローダーの為にPSR-0オートロードをクラスマップに変換します。
これは特に本番環境で推奨されますが、現在デフォルトで実行されないので少しので実行に少しの時間がかかります。
help
コマンドのヘルプを表示します。
php composer.phar help install
こんな感じでComposerのコマンドが実行できます。
出来ることはそんなに多くないので時間のある時に一度ひと通り試して見ると理解できると思います。
関連する記事:
- PHPの依存管理ツールComposerのcomposer.jsonのプロパティの一覧
- Androidでインストール済みのアプリ一覧の取得方法
- PHPでComposerを使ってインストール可能なライブラリの作り方
- SSH経由でMySQLを接続する方法(SSHポートフォワード)
- PHPでライブラリの依存管理をするツール「Composer」の使い方
コメント 0