PHP Composerは、PHPで最もよく使用される依存関係マネージャーです。プロジェクトに必要な依存関係を宣言し、それらを管理(インストール/更新)します。
依存関係のダウンロード、インストール、および更新は面倒な場合があり、実際にコードを作成する際に気が散る可能性があります。依存関係マネージャーは、それを処理することで、開発者としての生活を楽にします。
Composerが登場する前は、PEARやPHP Package Managerなど、プロジェクトの依存関係を管理するためのいくつかの異なるオプションがありました。現在、ComposerはPHPの依存関係管理の事実上の標準になっています。
まだPEARまたはPHPパッケージマネージャーを使用している場合は、変更の時期である可能性があります。 Composerを使用する理由はいくつかあります:
- PHPで記述されており、追加のソフトウェアインストール(Pythonなど)は必要ありません
- グローバルパッケージとローカル/プライベートパッケージの両方をサポートします
- 何千ものライブラリやアプリケーションがすでにこれに依存しているため、Composerを使用すると、パッケージやアップデートを簡単に見つけることができます。
Rocky Linux8.4にPHPComposerをインストールするには、次のものが必要です。
- PHPバージョン5.3以降がシステムにインストールされている(Phar拡張機能を実行できる必要があります)。
- インストールにはrootアクセスが必要です。
他のことをする前に、システムのパッケージが最新であることを確認してください。次のコマンドを実行して、システムパッケージを更新します。
sudo dnf check-update
sudo dnf update -y
RockyLinux8.4へのPHPのインストール
コンポーザーをインストールする前に、PHPとPHPインタープリターをシステムにインストールする必要があります。
デフォルトでは、AppStreamリポジトリにはPHP 7.2、7.3、および7.4が付属しています。以下のコマンドを実行すると、使用可能なすべてのPHPバージョンを一覧表示できます。
sudo dnf module list php
以下のような出力が表示されます。
このガイドでは、PHP7.4をインストールします。ニーズに合ったPHPバージョンを選択する必要がありますが、このガイドだけでなく、このような互換性レポートにも基づいて決定するようにしてください。
次のコマンドを実行して、PHP7.4を有効にしてインストールします。
sudo dnf module enable php:7.4
sudo dnf install php php-cli php-gd php-curl php-zip -y
sudo dnf install php-mbstring php-opcache php-intl php-mysqlnd -y
このコマンドを実行することで、PHPが正しくインストールされたかどうかを確認できるようになりました。
php -v
次の出力が得られるはずです。
RockyLinux8.4へのPHPComposerのインストール
システムにPHPのバージョンがインストールされたので、それを使用してComposerバイナリをダウンロードしてインストールできます。
まず、次のコマンドを実行して、最新バージョンのComposerをダウンロードします。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
次に、ダウンロードしたファイルが破損していないことを確認します。ダウンロードしたファイルを常に確認して、破損していないことを確認する必要があります。 Composerは非常に機密性が高い可能性があり、エラーが発生すると、Composerの使用方法に問題が発生する可能性があります。次のコードを実行して、インストーラーファイルが破損していないことを確認します。
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
以下に示すように、検証が成功すると、「インストーラーが検証されました」というテキストが表示されます。期待どおりの出力が得られない場合は、ファイルが破損している可能性が高いため、もう一度ダウンロードしてみてください。次に、期待される「インストーラー検証済み」出力が得られるまで検証プロセスを繰り返します。
これで、Composerをシステムにインストールするための2つのオプションがあります。
オプション1は、Composerをシステムにグローバルにインストールすることです。つまり、システムの任意のディレクトリーからアクセスでき、どこでも使用できます。 PHPプロジェクトの依存関係マネージャーとしてだけでなく、composerをコマンドラインツールとして使用する場合は、このオプションを使用します。
このオプションを使用する場合は、次のコマンドを実行してください。
sudo php composer-installer.php --filename=composer --install-dir=/usr/local/bin
上記のコマンドは、 / usr / local / binにあるcomposerという名前のコマンドを使用してComposerをグローバルにインストールします。 。
このコマンドを実行して、Composerが正しくインストールされているかどうかを確認できるようになりました。
composer
次の出力が得られるはずです。
オプション2は、Composerを現在のディレクトリにローカルにインストールして、この特定のプロジェクトでのみ使用されるようにすることです。
Composerをローカルにインストールするには、次のコマンドを実行します。
sudo php composer-setup.php
上記のコマンドは、Composerを現在のディレクトリにローカルにインストールして、この特定のプロジェクトでのみ使用されるようにします。 ./composer.phar
PHPComposerのテスト
Composerをインストールしたので、Composerを使用して、Composerのインストールをテストできる新しいプロジェクトを作成できます。
経験則では、作業するプロジェクトごとに常に個別のディレクトリを作成する必要があります。次のコマンドを実行して、テストプロジェクト用の新しいディレクトリを作成し、新しく作成したディレクトリに移動します。
cd && mkdir php-composer-test && cd php-composer-test
これで、次のコマンドを実行して、Composerで新しいプロジェクトを初期化できます。
composer init
上記のコマンドは、選択したすべての詳細で新しいプロジェクトを初期化します。
また、composer initコマンドは、以下に示すように、現在のディレクトリに新しいcomposer.jsonファイルを作成します。これは、すべてのプロジェクト要件を含むJSON形式のファイルです。 Composerはこのファイルを使用して、プロジェクトに必要な依存関係をインストールします。
次に、プロジェクトにパッケージをロードします。 https://packagist.orgにアクセスして、プロジェクトにインストールするパッケージを検索してください。
たとえば、Stop Wordsの削除パッケージをインストールする場合は、文字列からストップワードを削除するのに役立ちます。 Packagistで「ストップワードの削除」という用語を検索すると、次の結果が表示されます。
新しいパッケージを追加するには、composer requireコマンドを実行し、現在のプロジェクトにロードするパッケージ(バージョンなし)を選択します。
composer require rap2hpoutre/remove-stop-words
Composerは、使用するパッケージのバージョンを自動的に決定します。 Composerは、Packagistから現在のディレクトリにパッケージをダウンロードし、このパッケージの内容を抽出します。
また、この新しいパッケージの詳細でcomposer.jsonファイルを更新します。また、以下に示すように、新しいファイル(composer.lock)と新しいベンダーディレクトリも作成されます。
composer.lockファイルは、現在のプロジェクトにインストールされているパッケージバージョンをロックするためにComposerによって使用されます。このファイルは、同じパッケージの他のインストールとの競合を回避するため、またはプロジェクトのクローンを作成するときに使用されます。ベンダーディレクトリには、プロジェクトのすべての依存関係が含まれています。
プロジェクトの依存関係を更新するには、composerupdateコマンドを実行します。 Composerは、最初にcomposer.lockファイルを調べて、パッケージのどのバージョンが既にインストールされているかを確認し、次に、Packagistで入手可能な最新バージョンでこのパッケージを更新します。
composer update
出力例:
特定のパッケージを更新するには、次のコマンドを実行します。
composer update vendor/package
特定のパッケージを削除するには、次のコマンドを実行します。
composer remove vendor/package
たとえば、Stop Wordsの削除パッケージが不要になった場合は、次のコマンドを実行してプロジェクトからアンインストールできます。
composer remove rap2hpoutre/remove-stop-words
出力例:
注 :ベンダーディレクトリまたはその内容を削除しないことを強くお勧めします。このディレクトリには、アプリケーションを実行するためにComposerとともにインストールする必要のあるすべての依存関係が含まれているためです。
この記事では、PHPComposerPHP依存関係マネージャーをRockyLinux8.4にインストールして、新しいプロジェクトを初期化したり、新しいパッケージをロードしたり、既存のパッケージを更新したり、プロジェクトからアンインストールしたりする方法を学びました。プロジェクトの依存関係を管理するために使用されるいくつかの基本的なComposerコマンドも学習しました。
質問やフィードバックがある場合は、以下にコメントを残してください。