WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

composerで利用できるコマンド一覧

      2015/07/23

composerのコマンド

composerのコマンドとしては`composer install`や`composer update`などがありますが、他にもいろいろコマンドがあるみたいです。
この記事ではよく使うコマンドをリストアップしてみます。

なおここではcomposerをシステムワイドにインストールしてあることを前提として表記をします。
例えば、`php composer.phar install`ではなく`composer install`でコマンドを実行する形式です。

全コマンド共通のオプション

下記はすべてのコマンドで有効な共通のオプションになります。

オプション値 概要
verbose(-v) 詳細メッセージを表示させる。
help(-h) ヘルプを表示する。
quiet(-q) メッセージを表示しない。
no-interaction(-n) 対話型のメッセージを表示しない。
working-dir(-d) 作業フォルダを指定する
profile メモリ使用量と実行時間を表示する。
ansi ANSIカラーでメッセージを出力する。
no-ansi ANSIカラーを使用せずにメッセージを出力する。
version(-V) バージョンを表示する

init

composer.jsonを作成するためのコマンドです。
下記を実行すると対話形式でJSONの作成を行えます。

$ composer init

対形式で設定する項目はオプションで指定することも可能です。オプションの一覧に関しては下記の記事が詳しいです。
ComposerのCLIで利用できるコマンドの説明

すでにcomposer.jsonが存在するプロジェクトでこのコマンドを実行すると、特に警告もなく既存のcomposer.jsonを上書きしてしまいます。注意しましょう。

install

composer.lockに記載されている内容をもとにパッケージのインストールを行います。
パッケージはvendor/にインストールされ、各々のバージョンはcomposer.lockで指定されているものとなります。

$ composer install

composer.lockが存在しない場合は、composer.jsonに記載されている内容をもとにバージョンを最新版としてcomposer.lockを生成する(`composer update`と同じ効果)。

また、composer.lockに記載されているパッケージしかインストールの対象とならないので、composer.jsonにパッケージを新しく追加した場合はcomposer.lockを更新する`composer update`を利用しないと、新規インストールは行われません。
一方、Gitでpullしたときなどにcomposer.lockが更新されていた場合は`composer install`でローカルにないパッケージをインストールできます。

update

最新バージョンの依存関係を取得しパッケージの更新を行います。composer.lockの内容も更新されます。

$ composer update

特定のパッケージのみを更新することも可能です。

$ composer update  vendor/package1 vendor/package2

指定したパッケージがまだインストールされていない場合は無視され、特に何の処理も行われません。

require

composer.jsonのrequireパッケージを追加/更新するコマンドです。
requireパッケージを追加更新後に、パッケージのインストール、アップデートが行われます。

引数を指定しないで実行する場合は対話形式による追加となります。

$ composer require
Search for a package: twig  パッケージ名を応答

Found 15 packages matching twig

   [0] twig/twig
   [1] twig/extensions
   [2] yiisoft/yii2-twig
   [3] symfony/twig-bridge
   [4] phpdocumentor/template-responsive-twig
   [5] unionofrad/li3_twig
   [6] frood/twig
   [7] asm89/twig-cache-extension
   [8] jms/twig-js
   [9] symfony/twig-bundle
  [10] zf-commons/zfc-twig
  [11] umpirsky/twig-gettext-extractor
  [12] jms/twig-js-bundle
  [13] fluxoft/rebar-presenters-twig
  [14] simonjodet/twig

Enter package # to add, or the complete package name if it is not listed: 0  表示された候補の中からインストールするパッケージを選択
Enter the version constraint to require (or leave blank to use the latest version):
Using version ^1.18 for twig/twig
Search for a package:  他にもパッケージをインストールする場合は続けて指定。空Enterで終了

引数でパッケージを指定することで非対話形式での追加も可能です。

$ composer require symfony/dom-crawler

個人的にはテキストエディタでcomposer.jsonにパッケージを追記してから`composer update`を実行するよりこの`composer require`を使うほうが効率がいいと思っています。
あとrequireだと他のパッケージのupdateはかかりません。

help

コマンドのヘルプを表示するコマンドです。
引数で、ヘルプを表示したいコマンド名を指定します。

$ composer help search

対象のコマンドの引数やオプションなどの詳細が出力されます。

list

composerのコマンドの一覧を表示します。

$ composer list

知らないコマンドがあったらhelpを参照するといいでしょう。

参考資料

 - PHP , , ,