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\Squaresrc/Shapes/Square.php。 -
MyVendorName\MyProject\Tests\Shapes\Squaretests/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