検索

Composer とは

Composer は、PHP の依存関係管理ツールです。プロジェクト内で依存するライブラリを宣言すると、Composer が次の問題の解決に役立ちます。これらのライブラリのインストール可能なバージョンと、これらのライブラリが依存するライブラリを見つけてインストールします。つまり、Composer は依存関係管理ツールであり、パッケージ管理ツール (Yum や Apt と同様) ではありません。これは、これらのパッケージをプロジェクトごとに管理し、これらのパッケージをプロジェクト内の特定のディレクトリにインストールするためです。

Composer のインストール

Composer には PHP 5.3.2 以降のバージョンと一部の PHP 構成が必要です。互換性がない場合は、インストール プロセス中にプロンプ​​トが表示されます。 Composer をインストールするには 2 つの方法があります。1 つはローカル インストール、もう 1 つはグローバル インストールです。

ローカル インストール

ローカル インストールでは、Composer が現在のディレクトリにインストールされます。次のコマンドを実行してインストールします:

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '070854512ef404f16bac87071a6db9fd9721da1684cd4589b1196c3faf71b9a2682e2311b36a5079825e155ac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"$ php composer-setup.php$ php -r "unlink('composer-setup.php');"

合計 4 つのコマンドがあり、それぞれ次の操作を実行します:

  1. インストール ファイルを現在のディレクトリにダウンロードします。

  2. インストール ファイルの SHA-384 ハッシュを確認します。

  3. インストール ファイルを実行します。

  4. インストールファイルを削除します。

次に、次のコマンドを実行して Compoer を実行できます:

$ php composer.phar

2 番目のステップではファイルのハッシュがチェックされることに注意してください。インストール ファイルのハッシュ値はバージョンごとに異なるため、ダウンロード ページにアクセスして各インストールのインストール コードを入手することをお勧めします。または、インストールファイルを確認する必要がないと思われる場合は、このコマンドをスキップして次のコマンドを実行できます。もちろん、セキュリティの観点から、これはお勧めできません。

グローバル インストール

いわゆるグローバル インストールとは、実際には、どこからでも Composer にアクセスできるように、PATH 変数内のディレクトリに Composer をインストールすることを意味します。個人的にはこれを行うことをお勧めします。ローカルにインストールされた Composer 実行可能ファイルをグローバル ディレクトリに移動するだけです:

$ mv composer.phar /usr/local/bin/composer

これにより、composer コマンドをどこでも直接実行できるようになります。特に指定しない限り、後続のコマンドはグローバル インストールで実行されます。

インストール オプション

Composer はインストール時に 3 つのオプションをサポートします。

--install-dir

Composer のインストール パスは、--install-dir オプションを使用して変更できます。たとえば、Composer を bin ディレクトリにインストールする場合は、次のようにします。 >

$ php composer-setup.php --install-dir=bin
--filename

--filename オプションを使用すると、Composer 実行ファイルの名前を変更できます (デフォルトは、composer.phar)。例:

$ php composer-setup.php --filename=composer
--version

Composer の特定のバージョンをインストールする場合は、--version オプションを使用できます:

$ php composer-setup.php --version=1.0.0-alpha8
手動ダウンロード

上記のインストール方法以外に、実行ファイルを直接ダウンロードすることもできます。ダウンロードページにアクセスしてダウンロードしてください。

Composer の更新

Composer の更新は非常に簡単で、次のコマンドを実行するだけです:

$ composer selfupdateUpdating to version 1.1.2 (stable channel).    Downloading: 100%         Use composer self-update --rollback to return to version 06c45623d76457562cecbcf2245f904aa0f63a87# 或者(两者是等效的)$ composer self-update
バージョンをロールバックしたい場合は、次のコマンドを使用できます。コマンド:

$ composer selfupdate --rollbackRolling back to version 2016-05-26_16-11-16-06c4562.
Composer の基本的な使用方法

composer.json ファイル

Composer をインストールした後、プロジェクトで Composer の使用を開始したい場合は、これだけで済みます。必要なのは、composer .json ファイルを作成することです。このファイルには、プロジェクトが依存するパッケージとその他のメタ情報が記述されています。

require key

require 構成項目を通じて、プロジェクトの依存関係を指定できます。プロジェクトで monolog/monolog ログ ライブラリを使用する必要があると仮定すると、composer.json ファイルを次のように構成できます。

{    "require": {        "monolog/monolog": "1.0.*"    }}
require の値はオブジェクトであり、オブジェクト内の各キーは対応します。キー名はパッケージの名前、キー値はパッケージのバージョンです。

パッケージの名前

パッケージ名はベンダー名とプロジェクト名で構成され、パッケージ名の一意性が保証されます。プロジェクト名は繰り返すことができますが、ベンダー名は人によって異なります。 monolog/monolog を例に挙げると、ベンダー名とプロジェクト名は両方とも monolog です。

パッケージ バージョン

上記の例では、monolog/monolog バージョンが 1.0.* である必要があります。これは、1.0 開発ブランチ バージョンが要件を満たしていることを意味します。バージョンを指定するにはさまざまな方法がありますが、これについては後続の記事で詳しく説明します。

依存関係をインストールします

composer.json ファイルを作成し、require を構成した後、次のコマンドを実行するだけで依存関係をインストールできます:

$ composer installLoading composer repositories with package informationUpdating dependencies (including require-dev)  - Installing monolog/monolog (1.0.2)    Downloading: 100%         Writing lock fileGenerating autoload files
Composer monolog/monolog の最新バージョンは、上で構成されたバージョン規則に従って、デフォルトのディレクトリ ベンダーにダウンロードされます。

composer.lock文件

运行完上面的 install命令后,你会发现除了 vendor目录,还会多了一个 composer.lock文件。这个文件保存了项目已经安装的每个包的具体版本。在运行 install命令的时候,如果存在这个文件,则Composer会根据这个文件下载对应版本的包。这样的好处是可以保证各个环境的依赖的版本一致,否则如果没有这个文件,每个环境在运行 install时可能下载到的版本就不一致了。所以建议把 composer.lock文件也放到版本控制里。

更新依赖

要更新依赖,只需要运行 update命令:

# 更新所有的依赖$ composer update# 更新某个依赖$ composer update monolog/monolog

自动加载

下载完依赖后,我们可以开始使用依赖所提供的库了。Composer会为下载的库创建自动加载文件 vendor/autoload.php,我们只需要包含这个文件就能轻松的调用各个库的功能。以 monolog/monolog为例:

$log = new Monolog\Logger('name');$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');

我们不用关心库文件的加载问题,Composer的 autoload.php文件已经帮我们处理好了各个库的自动加载。

Packagist 镜像

至此,我们安装好了Composer,也知道了它的基本用法,基本可以快乐的玩耍了。但是众所周知,由于某些原因,github和packagist在国内有时会访问不了,或者速度很慢,这就会导致使用Composer时的各种不爽。还好我们国内有个 镜像可以解决这个问题,只需要把仓库的路径修改为镜像的路径即可。

有两种方式,一是修改Composer的全局配置(推荐的方式):

$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

这个命令会修改Composer的全局配置文件 config.json。二是修改单个项目的配置:

$ composer config repo.packagist composer https://packagist.phpcomposer.com

这个命令会修改项目下的 composer.json文件,添加如下的配置信息:

"repositories": {    "packagist": {        "type": "composer",        "url": "https://packagist.phpcomposer.com"    }}

当然你也可以直接手动修改 composer.json文件,添加上面那段配置信息。

详情请访问: http://pkg.phpcomposer.com/。

参考

  • https://getcomposer.org/

  • http://pkg.phpcomposer.com/

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPロギング:PHPログ分析のベストプラクティスPHPロギング:PHPログ分析のベストプラクティスMar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。PHPにおける後期静的結合の概念を説明します。Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

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 プラットフォームで実行できます。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。