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=composerAll settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composercomposerシステム全体のコマンドとしてインストールされ、すべてのユーザーが利用できるようになります。 -
最後のステップは、インストールを確認することです:
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-projectcd ~/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.jsonPHPプロジェクトとすべての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がパッケージを更新します。