ComposerはPHPの依存関係マネージャーです(npmはNode.jsまたはpipisはPythonになります)。
Composerは、プロジェクトが依存する必要なすべてのPHPパッケージを取り込み、それらを管理します。 Laravel、Symfony、Drupal、Magento2などの最新のすべてのPHPフレームワークとプラットフォームで使用されています。
このチュートリアルでは、CentOS 8にComposerをインストールする手順を説明します。急いでファイルの整合性を確認したくない場合は、[Composerのインストール-クイックウェイセクション]まで下にスクロールします。
前提条件#
続行する前に、次の要件を満たしていることを確認してください。
- sudo権限を持つユーザーとしてログイン
- CentOS8システムにPHPをインストールします。
CentOSへのComposerのインストール#
次の手順を実行して、ComposerをCentOS8にインストールします。
-
PHP CLI(コマンドラインインターフェイス)パッケージと他のすべての依存関係を次のコマンドでインストールします:
sudo dnf install php-cli php-json php-zip wget unzip
-
PHP CLIがインストールされたら、Composerインストーラースクリプトをダウンロードします。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
上記のコマンドは、
composer-setup.php
という名前のファイルをダウンロードします。 現在の作業ディレクトリにあります。 -
ファイルの
SHA-384
を比較して、データの整合性を確認します Composerの公開鍵/署名ページにあるハッシュを使用したハッシュ。次の
wget
コマンドは、ComposerのGithubページから最新のComposerインストーラーの署名をダウンロードし、HASH
という名前の変数に保存します。 :HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
インストールスクリプトが破損していないことを確認するには、次のコマンドを実行します。
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
ハッシュが一致すると、次のメッセージが表示されます。
Installer verified
それ以外の場合、ハッシュが一致しないと、
Installer corrupt
と表示されます。 。整合性が確認されたら、次の手順に進みます。 -
次のコマンドを実行して、Composerを
/usr/local/bin
にインストールします。 ディレクトリ:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
上記のコマンドは
composer
をインストールします システム全体のコマンドとして、すべてのユーザーが利用できます。出力は次のようになりますAll settings correct for using Composer Downloading... Composer (version 1.10.1) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
上記のコマンドは
composer
をインストールします システム全体のコマンドとして、すべてのユーザーが利用できます。 -
Composerのバージョンを印刷して、インストールを確認します。
composer -V
Composer version 1.10.1 2020-03-13 20:34:27
この時点で、CentOSシステムにComposerが正常にインストールされ、使用を開始できます。
次の手順を実行して、CentOS8システムにComposerをすばやくインストールします。
-
PHP CLIとZipをインストールします:
sudo dnf install php-cli php-json php-zip curl unzip
-
カール付きのComposerをダウンロードする:
curl -sS https://getcomposer.org/installer |php
-
Composerファイルを
/usr/local/bin
に移動します ディレクトリ:sudo mv composer.phar /usr/local/bin/composer
Composerの使用を開始する#
これでComposerがCentOSシステムにインストールされたので、PHPプロジェクトでComposerを使用する方法を説明します。
プロジェクトのルートディレクトリを作成することから始めて、そこに移動します:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
この例では、carbonというPHPパッケージを使用して、現在の時刻を印刷するサンプルアプリケーションを作成します。
次のコマンドを実行して、新しいComposerプロジェクトを初期化し、carbonパッケージをインストールします。
composer require nesbot/carbon
sing version ^2.32 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)
- Installing symfony/translation (v5.0.6): Downloading (100%)
- Installing nesbot/carbon (2.32.1): Downloading (100%)
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
上記の出力からわかるように、Composerはcomposer.json
という名前のファイルを作成します カーボンとそのすべての依存関係をダウンロードします。
プロジェクトのディレクトリを一覧表示すると、2つのファイルcomposer.json
が含まれていることがわかります。 およびcomposer.lock
、およびvendor
ディレクトリ。
ls -l
-rw-rw-r--. 1 vagrant vagrant 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 vagrant vagrant 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 vagrant vagrant 82 Mar 27 18:06 vendor
vendor
プロジェクトの依存関係が保存されるディレクトリです。-
composer.lock
ファイルには、バージョンを含む、インストールされているすべてのパッケージのリストが含まれています。 -
composer.json
PHPの依存関係やその他のメタデータを含むPHPプロジェクトを説明するファイルです。
Composerには自動ロード機能があり、require
を必要とせずにPHPクラスを使用できます。 またはinclude
ステートメント。
testing.php
という名前のファイルを作成します 次のコードを追加します:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
コードを1行ずつ分析してみましょう。
開始phpタグの後の最初の行には、vendor/autoload.php
が含まれています。 すべてのライブラリを自動ロードするファイル。
次に、Carbon\Carbon
のエイリアスを作成します Carbon
として 。最後の行は、Carbon now
を使用して現在の時刻を出力します メソッド。
次のように入力してスクリプトを実行します:
php testing.php
出力は次のようになります。
Now: 2020-03-27 22:12:26
後で、PHPパッケージを更新する場合は、次のコマンドを実行できます。
composer update
上記のコマンドは、インストールされているパッケージの新しいバージョンをチェックし、新しいバージョンが見つかり、バージョンの制約がcomposer.json
で指定されたものと一致するかどうかを確認します。 、Composerがパッケージを更新します。