サーチ…


前書き

ComposerはPHPの最も一般的に使用される依存関係マネージャです。これはNodeのnpm 、Pythonのpip 、または.NETのNuGetに似ています。

構文

  • php path / to / composer.phar [コマンド] [オプション] [引数]

パラメーター

パラメータ詳細
ライセンスプロジェクトで使用するライセンスのタイプを定義します。
著者プロジェクトの著者と著者の詳細を定義します。
サポートサポート電子メール、IRCチャネル、およびさまざまなリンクを定義します。
要求するパッケージのバージョンと実際の依存関係を定義します。
require-dev プロジェクトの開発に必要なパッケージを定義します。
提案するパッケージの提案、つまりインストールされている場合に役立つパッケージを定義します。
オートロードプロジェクトのオートローディングポリシーを定義します。
autoload-dev プロジェクトを開発するためのオートローディングポリシーを定義します。

備考

自動ロードは、自動ロード情報を指定するライブラリに対してのみ機能します。ほとんどのライブラリは、 PSR-0PSR-4などの標準を守っています。

便利なリンク

いくつかの提案

  1. Composerの実行中はxdebugを無効にしてください。
  2. 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/goutteGoutteをインストールした後、すぐに新しいプロジェクトで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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow