PHP
Composer Dependency Manager
サーチ…
前書き
ComposerはPHPの最も一般的に使用される依存関係マネージャです。これはNodeのnpm
、Pythonのpip
、または.NETのNuGet
に似ています。
構文
- php path / to / composer.phar [コマンド] [オプション] [引数]
パラメーター
パラメータ | 詳細 |
---|---|
ライセンス | プロジェクトで使用するライセンスのタイプを定義します。 |
著者 | プロジェクトの著者と著者の詳細を定義します。 |
サポート | サポート電子メール、IRCチャネル、およびさまざまなリンクを定義します。 |
要求する | パッケージのバージョンと実際の依存関係を定義します。 |
require-dev | プロジェクトの開発に必要なパッケージを定義します。 |
提案する | パッケージの提案、つまりインストールされている場合に役立つパッケージを定義します。 |
オートロード | プロジェクトのオートローディングポリシーを定義します。 |
autoload-dev | プロジェクトを開発するためのオートローディングポリシーを定義します。 |
備考
自動ロードは、自動ロード情報を指定するライブラリに対してのみ機能します。ほとんどのライブラリは、 PSR-0やPSR-4などの標準を守っています。
便利なリンク
いくつかの提案
- Composerの実行中はxdebugを無効にしてください。
- Composerを
root
として実行しないでください。パッケージは信頼できません。
作曲家とは何ですか?
ComposerはPHPの依存関係/パッケージマネージャです。これは、プロジェクトの依存関係のインストール、追跡、および更新に使用できます。 Composerは、アプリケーションが依存している依存関係を自動ロードすることもできるため、プロジェクト内の依存関係を特定のファイルの先頭に含めずに簡単に使用できます。
プロジェクトの依存関係は、通常はプロジェクトルートにあるcomposer.json
ファイル内にリストされています。このファイルには、プロダクション用および開発用のパッケージの必要なバージョンに関する情報が格納されています。
composer.json
スキーマの完全な概要は、 Composer Webサイトにあります。
このファイルは、テキストエディタを使用して手動で編集することも、 composer require <package>
やcomposer require-dev <package>
などのコマンドを使ってコマンドラインから自動的に編集することもできます。
プロジェクトでcomposer.json
を使用するには、 composer.json
ファイルを作成する必要があります。手動で作成することも、単にcomposer init
実行することもできcomposer init
。ターミナルでcomposer init
を実行すると、 パッケージ名 ( ベンダー/パッケージ - たとえばlaravel/laravel
)、 説明 - オプション 、 作成者 、最小安定性、ライセンス、必要なその他の情報など、プロジェクトに関する基本情報が表示されますパッケージ。
composer.json
ファイルのrequire
キーは、あなたのプロジェクトが依存するパッケージのComposerを指定します。 require
は、パッケージ名(例えば、 モノログ/モノログ )をバージョン制約( 1.0など )にマッピングするオブジェクトをとります。
{
"require": {
"composer/composer": "1.2.*"
}
}
定義済みの依存関係をインストールするには、 composer install
コマンドを実行する必要があります。次に、指定されたversion
制約に一致する定義済みのパッケージを見つけて、それをvendor
ディレクトリにダウンロードします。 vendor
という名前のディレクトリに第三者のコードを入れるのが慣例です。
install
コマンドがcomposer.lock
ファイルを作成したことに気付くでしょう。
composer.lock
ファイルは、Composerによって自動的に生成されます。このファイルは、現在インストールされているバージョンと依存関係の状態を追跡するために使用されます。 composer install
を実行composer install
と、パッケージがロックファイルに格納された状態に正確にインストールされます。
Composerを使ったオートロード
コンポーザーは、PHPプロジェクト( Packagistなど )の依存関係を管理するシステムを提供していますが、特にオートローダーとして機能し、特定の名前空間を探す場所や汎用関数ファイルを含める場所を指定することもできます。
これはcomposer.json
ファイルから始まります:
{
// ...
"autoload": {
"psr-4": {
"MyVendorName\\MyProject": "src/"
},
"files": [
"src/functions.php"
]
},
"autoload-dev": {
"psr-4": {
"MyVendorName\\MyProject\\Tests": "tests/"
}
}
}
この設定コードは、名前空間MyVendorName\MyProject
すべてのクラスがsrc
ディレクトリにマップされ、 MyVendorName\MyProject\Tests
すべてのクラスがtests
ディレクトリ(ルートディレクトリを基準にして)にマッピングされるようにします。また、 functions.php
ファイルも自動的にインクルードされます。
これをあなたのcomposer.json
ファイルに入れたら、 composer update
を端末で実行して、コンポーザーが依存関係を更新し、ロックファイルを作成してautoload.php
ファイルを生成させます。実稼働環境にデプロイするときは、 composer install --no-dev
使用します。 autoload.php
ファイルは、 composer.json
存在するディレクトリに生成されるvendor
ディレクトリにあります。
以下のような行を使用して、アプリケーションのライフサイクルのセットアップポイントでこのファイルを早期にrequire
ます。
require_once __DIR__ . '/vendor/autoload.php';
含まれていると、 autoload.php
ファイルは、 composer.json
ファイルで指定したすべての依存関係のロードを処理します。
ディレクトリパスへのクラスパスの例:
-
MyVendorName\MyProject\Shapes\Square
src/Shapes/Square.php
。 -
MyVendorName\MyProject\Tests\Shapes\Square
tests/Shapes/Square.php
ます。
Composerを使用するメリット
Composerは、インストールされているパッケージのバージョンをcomposer.lock
というファイルに記録します。このファイルはバージョン管理にコミットされるため、プロジェクトが将来クローンされるときに単にComposerをcomposer install
するだけで、すべてのプロジェクトの依存関係。
Composerは、プロジェクトごとにPHP依存関係を処理します。これにより、1つのマシンに複数のプロジェクトを1つのPHPパッケージの別々のバージョンに依存させることが容易になります。
Composerは、どの依存関係が開発環境だけを対象としているかを追跡します
composer require --dev phpunit/phpunit
Composerはオートローダーを提供するので、どのパッケージでも簡単に始めることができます。たとえば、 composer require fabpot/goutte
でGoutteをインストールした後、すぐに新しいプロジェクトでGoutteを使うことができます:
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new Goutte\Client();
// Start using Goutte
Composerを使用すると、プロジェクトをComposer.jsonで許可されている最新バージョンに簡単に更新できます。例えば。 composer update fabpot/goutte
、またはそれぞれのプロジェクトの依存関係をcomposer update
する: composer update
。
'composer install'と 'composer update'の違い
composer update
composer update
、それらが指定されているとして私達の依存関係を更新しますcomposer.json
。
たとえば、プロジェクトで次の設定を使用しているとします。
"require": {
"laravelcollective/html": "2.0.*"
}
実際に2.0.1
バージョンのパッケージをインストールした場合、 composer update
を実行composer update
と、このパッケージがアップグレードされます(たとえば、 2.0.2
がリリースされている場合など)。
詳細なcomposer update
は:
-
composer.json
を読む -
composer.json
不要になったインストール済みのパッケージを削除する - 必要なパッケージの最新バージョンの可用性を確認する
- パッケージの最新バージョンをインストールする
-
composer.lock
を更新して、インストールされているパッケージのバージョンを保存する
composer install
composer install
は、何も更新せずに、指定されたバージョン(ロックされた)でcomposer.lock
ファイルに指定されているすべての依存関係をインストールします。
詳細に:
-
composer.lock
ファイルを読み込む -
composer.lock
ファイルで指定されたパッケージをインストールします。
インストールの時期と更新時期
composer update
は、プロジェクトパッケージをアップグレードするために、主に「開発」フェーズで使用されます。composer install
は、composer update
によって作成されたcomposer.lock
ファイルに保存されているのと同じ依存関係を使用して、プロダクションサーバーまたはテスト環境にアプリケーションをインストールするために、「展開段階」で主に使用されます。
使用可能なComposerコマンド
コマンド | 使用法 |
---|---|
約 | 作曲家に関する短い情報 |
アーカイブ | このコンポーザーパッケージのアーカイブを作成する |
ブラウズ | ブラウザにパッケージのリポジトリのURLまたはホームページを開きます。 |
キャッシュの消去 | コンポーザの内部パッケージキャッシュを消去します。 |
キャッシュの消去 | コンポーザの内部パッケージキャッシュを消去します。 |
設定 | 設定オプションを設定する |
プロジェクトの作成 | パッケージから指定されたディレクトリに新しいプロジェクトを作成します。 |
依存する | パッケージがインストールされるパッケージを表示します。 |
診断する | 一般的なエラーを識別するためにシステムを診断します。 |
ダンプ自動ロード | オートローダをダンプします。 |
dumpautoload | オートローダをダンプします。 |
exec | 販売されているバイナリ/スクリプトを実行する |
グローバル | グローバルコンポーザディレクトリ($ COMPOSER_HOME)でコマンドを実行できます。 |
助けて | コマンドのヘルプを表示します。 |
自宅 | ブラウザにパッケージのリポジトリのURLまたはホームページを開きます。 |
情報 | パッケージに関する情報を表示する |
その中に | 現在のディレクトリに基本的なcomposer.jsonファイルを作成します。 |
インストール | composer.lockファイルからプロジェクト依存関係をインストールするか、またはcomposer.jsonにフォールバックします。 |
ライセンス | 依存関係のライセンスに関する情報を表示する |
リスト | リストコマンド |
時代遅れの | 最新バージョンを含む、利用可能なアップデートがインストールされているパッケージの一覧を表示します。 |
禁止する | パッケージがインストールされないようにするパッケージを表示します。 |
除去する | requireまたはrequire-devからパッケージを削除します。 |
要求する | 必要なパッケージをcomposer.jsonに追加してインストールします。 |
実行スクリプト | composer.jsonで定義されたスクリプトを実行します。 |
サーチ | パッケージを検索する |
自己更新 | composer.pharを最新バージョンに更新します。 |
自己更新 | composer.pharを最新バージョンに更新します。 |
ショー | パッケージに関する情報を表示する |
状態 | ローカルに変更されたパッケージのリストを表示する |
提案する | パッケージ提案を表示する |
更新 | composer.jsonに従って依存関係を最新のバージョンに更新し、composer.lockファイルを更新します。 |
検証 | composer.jsonとcomposer.lockを検証します。 |
なぜ | パッケージがインストールされるパッケージを表示します。 |
何故なの | パッケージがインストールされないようにするパッケージを表示します。 |
インストール
Composerは、ローカルに、プロジェクトの一部として、またはシステム全体の実行可能ファイルとしてグローバルにインストールできます。
ローカルで
インストールするには、これらのコマンドを端末で実行します。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"
これは、現在のディレクトリにcomposer.phar
(PHPアーカイブファイル)をダウンロードします。これで、 php composer.phar
を使ってComposerを使うことができます。
php composer.phar install
世界的に
Composerをグローバルに使用するには、 PATH
一部であるディレクトリにcomposer.pharファイルを置きます
mv composer.phar /usr/local/bin/composer
これで、 php composer.phar
代わりにどこでもcomposer
を使うことができます。
composer install