Composerのメモ : PHP

Pocket

Composerはコンポーネント(パッケージ)管理ツールです。  
Composerで管理されるコンポーネントはPackagistで配布されています。  

» Composer

Packagistで配布されるコンポーネントはvendor/packageという一意の識別子を持ちます。  
Packagistでの識別子とそのコンポーネントの名前空間(namespace)は同じとはかぎりません。

A common misconception is that the component’s PHP namespace must match the component’s vendor and package names. This is not true. The component’s PHP namespace is unrelated to the component’s vendor and package names. The vendor and package names are only used by Packagist and Composer to identify a component. You use the component’s namespace when using the component in your PHP code.

Modern PHP: New Features and Good Practices

インストール

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

composer.pharがカレントディレクトリへダウンロードされます。
正常にインストールが完了したかを確認する意味でバージョンを表示します。

$ php /path/to/composer.phar --version

composer.pharへ実行権限を付与します。
composer.pharを直接実行できるようになります。

$ chmod +x composer.phar
$ /path/to/composer.phar --version

パスの通っているディレクトリへ移動します(例 /usr/local/bin)。
どのディレクトリでも下記コマンドで実行できます。

$ composer.phar --version

簡略化のためcomposer.pharをcomposerへ名前を変更します。

$ composer --version

Composer本体アップデート

$ composer self-update

self-update後にエラーが起こるときは下記コマンドでself-updateする前に戻すことができます。

Use composer self-update --rollback to return to version x.x.x

初期化(composer.json作成)

$ composer init

対話的にcomposer.jsonを作成できます。
composer.jsonファイルが作成されます。

composer.jsonの例

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

» Composer ドキュメント日本語訳

composer.jsonに記載したパッケージをインストール

$ composer install

installコマンドでパッケージをインストールします。具体的には下記処理が行われます。

  • composer.lockがあれば正確に記載のバージョンインストールします。なければcomposer.jsonで記載された範囲の最新版をインストールします。
     (vendor/autoload.phpが作成されオートロードが利用できます。)
  • composer.lockファイルを作成します。

パッケージ追加

// 通常の追加
$ composer require <vendor/package>
// 例
$ composer require league/csv
// バージョンを指定し追加
$ composer require league/csv:^7.1
// 開発でのみ必要なパッケージは--devオプションを付けます。
$ composer require <vendor/package> --dev

composer requireはパッケージを追加しcomposer.jsonへ追記します。

composer require –devは開発環境でのみ利用するパッケージを追加します。
composer installではインストールされず–devオプションを付けたcomposer install –devでインストールされます。

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

通常、composer.jsonと同階層にvendorディレクトリが作成されます。

vendor/monolog/monolog

|-- composer.json
|
|-- composer.lock
|
|-- vendor
      |
      |--monolog
          |
          |--monolog
              |
              |-- src
                  |
                  |-- Monolog

パッケージのアップデート

// 一括
$ composer update
// 個別
$ composer update <vendor/package>

composer.jsonに記載された範囲の最新をインストールします。composer.lockは無視します(installとの違いに注意)。

人気記事 はてなブックマーク

この日記のはてなブックマーク数