ComposerはPHPの依存関係マネージャーです(Node.jsのnpmまたはPythonのpipに似ています)。
Composerは、プロジェクトが依存する必要なすべてのPHPパッケージを取得し、それらを管理します。 Laravel、Symfony、Drupal、Magento2などの最新のPHPフレームワークとプラットフォームすべてで使用されています。
このチュートリアルでは、CentOS7マシンにComposerをインストールして使用する手順を説明します。
前提条件#
このチュートリアルを続行する前に、次の前提条件を満たしていることを確認してください。
- sudo権限を持つユーザーとしてログイン
- CentOS7システムにPHP7をインストールします。
CentOSへのComposerのインストール#
次の手順では、CentOS7システムにComposerをインストールする方法について説明します。
-
まず、PHP CLI(コマンドラインインターフェイス)パッケージと他のすべての依存関係を次のコマンドでインストールします。
sudo yum install php-cli php-zip wget unzip
-
PHP CLIがインストールされたら、次のコマンドを使用してComposerインストーラスクリプトをダウンロードします。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
上記のコマンドは、
composer-setup.php
をダウンロードします。 現在の作業ディレクトリにあるファイル。 -
スクリプトのデータ整合性を確認するには、スクリプト
SHA-384
を比較します。 Composer Public Keys/Signaturesページにある最新のインストーラーハッシュを使用したハッシュ。次のwgetコマンドは、最新のComposerインストーラーの予想される署名をComposerのGithubページからダウンロードし、
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インストールスクリプトを再ダウンロードし、$HASH
の値を再確認する必要があります。echo $HASH
の変数 。インストーラーが確認されたら、次のステップに進むことができます。 -
次のコマンドを実行して、Composerを
/usr/local/bin
にインストールします。 ディレクトリ:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
composer
システム全体のコマンドとしてインストールされ、すべてのユーザーが利用できるようになります。 -
最後のステップは、インストールを確認することです:
composer
上記のコマンドは、Composerのバージョン、コマンド、および引数を出力します。
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
この時点で、CentOSシステムにComposerが正常にインストールされています。
php composer-setup.php
を使用します。 composer.phar
という名前のファイルが作成されます 現在の作業ディレクトリにあります。 ./composer.phar <command>.
を実行すると、composerを使用できます。 Composerの使用を開始する#
これで、ComposerがCentOSシステムにインストールされたので、PHPプロジェクトでComposerを使用する方法を説明します。
プロジェクトのルートディレクトリとなるディレクトリを作成し、composer.json
を保持することから始めます。 ファイル。
composer.json
ファイルには、PHPの依存関係やその他のメタデータを含むPHPプロジェクトが記述されています。
プロジェクトディレクトリを作成し、それに切り替えます:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
この例では、carbonというパッケージを使用して現在の時刻を印刷するサンプルアプリケーションを作成します。
次のコマンドを実行して、新しいComposerプロジェクトを初期化し、carbonパッケージをインストールします。
composer require nesbot/carbon
Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (2.2.0): Downloading (100%)
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
上記の出力からわかるように、Composerはcomposer.json
を作成します ファイルを作成すると、Carbonとそのすべての依存関係がダウンロードおよびインストールされます。
プロジェクトのディレクトリを一覧表示すると、2つのファイルcomposer.json
が含まれていることがわかります。 およびcomposer.lock
、およびvendor
ディレクトリ。
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 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
が含まれています。 すべてのライブラリを自動ロードするComposerによって自動的に生成されたファイル。
次に、Carbon\Carbon
のエイリアスを作成します Carbon
として 最後の行では、Carbon now
を使用して現在の時刻を印刷しています。 メソッド。
次のように入力してスクリプトを実行します:
php testing.php
出力は次のようになります。
Now: 2018-09-26 20:08:18
後で、PHPパッケージを更新する場合は、次のコマンドを実行できます。
composer update
上記のコマンドは、インストールされているパッケージの新しいバージョンをチェックし、新しいバージョンが見つかり、バージョンの制約がcomposer.json
で指定されたものと一致するかどうかを確認します。 、Composerがパッケージを更新します。