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 self-update
self-update後にエラーが起こるときは下記コマンドでself-updateする前に戻すことができます。
Use composer self-update --rollback to return to version x.x.x
$ composer init
対話的にcomposer.jsonを作成できます。
composer.jsonファイルが作成されます。
{
"require": {
"monolog/monolog": "1.0.*"
}
}
$ composer install
installコマンドでパッケージをインストールします。具体的には下記処理が行われます。
// 通常の追加
$ 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との違いに注意)。
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。