検索

Composer の詳細な紹介

Oct 23, 2017 am 10:50 AM
composer導入詳しい

Composer は、PEAR パッケージ マネージャーに代わる非常に人気のあるツールです。

ユーザーにとって、Composer は非常に簡単なコマンドで必要なコード パッケージです。がベンダー ディレクトリにダウンロードされると、開発者はパッケージを導入して使用できるようになります

キーは、プロジェクトによって定義された Composer.json にあり、プロジェクトが依存する必要があるパッケージを定義できます (依存パッケージは他のパッケージに依存する場合があります (これはコンポーネントの利点です)。Composer は必要なものをすべて

の定義内にダウンロードします。 Composer はユーザーにとって非常に便利ですが、その背後にある概念はまだ理解する必要があります。Github の急速な発展のおかげで、PHP 言語はますます現代的になり、より高度なものになってきています。 Composer を理解するには、まずその構造を大まかに理解します。

Composer の構造

Composer コマンド ライン ツール:

これを理解するだけであれば、ユーザー定義の Composer.json を通じて必要なコードをダウンロードします。 Composer を簡単に使用して、それをマスターしましょう いくつかの特定のコマンドで十分です



コードローダーの自動読み込み:

Composer を通じて、開発者は Composer をさまざまな方法で使用できます。その鍵は、PHP の名前空間の概念とその開発にあります。 PSR-4 標準。Composer は、これら 2 つのコード オートローダーを開発しました



Github:

Github を使用すると、PHP 開発者はその上でオープン ソース コードをホストでき、Composer の開発は基本的に Github から始まります。



Packagist:

ユーザーの場合、Composer のコマンドラインツールが使用されますが、コマンドラインツールはユーザーが使用できるパッケージの数をどのようにして知るのでしょうか? Packagist、Packagist は Composer の主要なパッケージ情報リポジトリです。パッケージ開発者は Github で特定のコードをホストし、パッケージ情報を Packagist に送信します。これにより、ユーザーは Composer を介してパッケージ情報を使用できます。 Composer が最終的にコードをダウンロードするとき、Composer.json/Package.json 情報を解析し、最終的に Github リポジトリ上の Composer.json に依存します。ここでは 3 つのタイプが関係します。



Composer.json:
これは Composer のコアであり、Composer のルールも上で説明したものです。最初に使用するときは注意が必要です。

Composer コマンド ライン ツール

composer init

ユーザーは、自分のプロジェクトの下に combos.json を作成してプロジェクトの依存関係パッケージを定義することも、composer init を通じて操作することもできます。

composer install

は最も一般的に使用されるコマンドです。Composer は、ダウンロードしたパッケージをローカルの combos.json インストール パッケージに基づいてプロジェクトのベンダー ディレクトリに配置し、同時にパッケージのバージョン情報をインストールします。バージョンをロックするには、composer.lock に入れます。

実際、インストール中に、composer.lock のバージョンが現在のベンダー ディレクトリ内のコードのバージョンと一致していることが判明した場合、Composer は何もせず、composer.lock の目的を実行します。

composer update

では、パッケージの最新バージョンを入手できるように、composer.lock を更新するにはどうすればよいでしょうか。このコマンドで最新バージョンを更新します

composer config

パッケージを理解することをお勧めします。グローバル設定は COMPOSER_HOME/config.json に保存され、非グローバル設定情報はプロジェクト ディレクトリに保存されます。 config --list -gcomposer config - g Notice-on-install falsecomposer global config bin-dir --absolute

composer create-project

このコマンドは一般的には使用されませんが、個人的には依然として非常に重要だと考えています。プロジェクトのすべての依存関係パッケージをダウンロードするための通常のインストール コマンド このプロジェクトのベンダー ディレクトリに移動します。このコマンドは、すべてのコードとその依存パッケージを 1 つのディレクトリに配置します。これは、通常、パッケージ開発者が git clone コマンドを実行するのと同じです。 Command.

composer global
はこれを使用してバグを修正する可能性があります。

これはグローバル インストール コマンドであり、COMPOSER_HOME ディレクトリで Composer コマンド (インストールや更新など) を実行できます。もちろん、COMPOSER_HOME は $PATH 環境にある必要があります。

たとえば、composer global require fabpot/ を実行します。 php-cs-fixer では、php-cs-fixer コマンド ラインをグローバルに実行できるようになりました。後で更新する場合は、コンポーザーを変更するときに、composer global update

composer dump-autoload

を実行するだけです。プロジェクトの下にある json ファイル、いいえ、更新するには必ずコンポーザー更新コマンドを実行してください。たとえば、このコマンドを使用して (packagist からではなく) ローカルのカスタム パッケージを参照することができます。

composer require

composer require cerdic/css-tidy:1.5.2composer require "ywdblog" を手動または対話的に作成する場合は、このコマンドを使用してパッケージをインストールできます。 /phpcomposer:dev-master"


–prefer-source および –prefer-dist パラメーター

–prefer-dist: 安定したパッケージの場合、通常、Composer のインストールではデフォルトでこのパラメーターが使用され、インストールを高速化することもできます。たとえば、実際にインストールせずに、対応するパッケージを packageist から直接インストールすることができます。

–prefer-source: このパラメーターを使用すると、パッケージのインストール後に Github から直接インストールされます。 、ベンダー ディレクトリには .git 情報も含まれます

composer require "ywdblog/phpcomposer:dev-master" --prefer-source

# Vendor/ywdblog/phpcomposer ディレクトリに .git 情報が含まれます



追加方法Composer へのプロキシ

Composer のダウンロードは、中国では特に遅くなります 2 つの方法で速度を上げることができます

composer config repo.packagistamper "https://packagist.phpcomposer.com"

edit combos.json

" リポジトリ": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com"

}

}


オートローディングコードローダー

composer自体はオートローダーを統合し、 PSR-4、PSR-0、クラスマップ、ファイルの自動ロード。

ここでは、PSR-4 標準に準拠する Composer Reference クラスマップ、ファイル、ローカル コードの使用方法を示す例を示します

composer.json を編集します

"autoload" : { "クラスマップ": ["othsrc/","classsrc.php"]、"ファイル": ["othsrc /filesrc.php"]、"psr-4": {"FooBar": "src"}

}



composer dump-autoload

上記の操作を通じて、PSR-4 の場合、(FooBar 名前空間から) PSR-4 オートローダーを登録するのと同等です


Composer のオートローダーを使用したくない場合は、直接インクルードすることができますVendor/composer/autoload_*.php ファイルを開き、独自のローダーを設定します。

具体的な例は github でホストされていますので、参照してください。


リポジトリ

リポジトリについては、理解する必要はありませんが、マスターすれば、 Composer については、中国語と英語のドキュメントで詳しく説明されています。

基本概念:

Composer は、いくつかのリソース パッケージとパッケージの説明をインストールします。より重要なメタデータの説明は、dist とsource がアーカイブを指し、ソース パッケージの特定のバージョンのデータがパッケージ化されています。開発中のソース。通常はソース コード リポジトリ (git など) です。

リソース ライブラリ:

リソース ライブラリは、パッケージ/バージョンのリストです。

Composer が参照します。プロジェクトに必要なリソース パッケージを見つけるために定義したすべてのリポジトリ (この文は非常に重要です)

Packagist.org はデフォルトで Composer に登録されています (または Packagist として理解されます。org は Composer リソース ライブラリのデフォルトのウェアハウス タイプです)。 )

Composer リソース ライブラリ タイプ

Composer リソース ライブラリには 4 つのタイプが含まれています。デフォルトは、packagist.org で使用されるリソース タイプである Composer タイプです。

それは 1 つを使用します。packages.json ファイルには、すべてのリソース パッケージ メタデータが含まれています。パッケージを pckagist.org に公開すると、システムはデフォルトで package.json を作成しますが、パッケージに対応するファイルが見つかりませんでした。

VCS リソース ライブラリ タイプ

プライベート Composer プライベートをビルドしたい場合たとえば、プロジェクトのcomposer.jsonで次のように定義すると、Github .

{ "repositories": [ { "タイプ": "vcs"、"url": "https://github.com/ywdblog/phpcomposer" } ], "require": { "ywdblog/phpcomposer": "dev-master" } }

composer update を実行すると、Comoser は実際には、pckagist.org ではなく Github からパッケージをダウンロードします。

さらに、パッケージ リソース ライブラリ タイプまたは PEAR リソース ライブラリ タイプを使用する必要がある場合は、一般的に公式ドキュメントを参照してください。 、composer.json.

Composer.json

でnameとversion属性を定義するだけです。

Composer.json については、この記事で何度も言及しています。たとえば、サードパーティ パッケージを使用する場合は、Composer がサードパーティ パッケージをインストールした後、composer.json もローカルで定義する必要があります。どちらも、composer.json と呼ばれますが、その違いは何ですか?

プロジェクトの下に combos.json を定義する場合、このパッケージは ROOT パッケージと呼ばれます。このcomposer.jsonは、プロジェクトに必要な条件を定義します(たとえば、プロジェクトはサードパーティのパッケージに依存する可能性があります)。

composer.jsonの一部のプロパティは、ROOTパッケージでのみ使用できます。 config プロパティは ROOT パッケージでのみ有効です。

リソース パッケージは ROOT ですか? たとえば、ywdblog/phpcomposer を git clone する場合、ローカルの phpcomposer ディレクトリは ROOT パッケージになります。ローカルの phpcomposer ディレクトリにある /phpcomposer の場合、プロジェクト phpcomposer は ROOT パッケージになります

Composer-schema.json について学ぶには、この Web サイトを参照してください。Laravel の combos.json 定義は非常に古典的です。パッケージのバージョンについて

ユーザーがローカルでcomposer.jsonを構成する場合、パッケージの特定のバージョンが必要な場合、ComposerはGithubリポジトリからのタグまたはブランチでのパッケージのダウンロードをサポートします

Githubのタグについては、Packagist。 X.Y.Z、vX.Y.Z、X.Y.Z パッケージ タイプに準拠する、対応するパッケージのバージョンを作成します。つまり、Github にはパッケージの特定のバージョンが 1 つだけありますが、Composer は複数の形式の参照メソッドをサポートしています。

composer require monolog/monolog 1.0.0-RC1

composer require monolog/monolog v1.0.0-RC1

composer require monolog/monolog 1.0.*
composer require monolog/monolog ~1.10


Github 上のブランチの場合、 Packagist は、ブランチ名がバージョンに似ている場合、{ブランチ名}- が作成されます。ブランチ名がバージョン番号に似ていない場合は、パッケージのバージョン番号が作成されます。 dev-{ブランチ名}の形式のバージョン番号

composer require monolog/monolog master-dev

composer require monolog/monolog master.x -dev



概要:

Composerを理解するには、最も重要なことは練習することです最後に、PSR-4 と名前空間を理解することができます。また、プロジェクトを pckagist.org に公開してみることもできます。

以上がComposer の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター