
Composerは、PHPの依存関係マネージャーです(Node.jsのnpmまたはPythonのpipに似ています)。 Composerは、プロジェクトが依存する必要なすべてのPHPパッケージを取得し、それらを管理します。
このチュートリアルでは、Debian9システムにComposerをインストールするために必要な手順を説明します。また、Composerを使用してPHPプロジェクトを作成および管理する方法についても説明します。
前提条件#
このチュートリアルを続行する前に、sudo権限を持つユーザーとしてログインし、Debian9システムにPHPがインストールされていることを確認してください。
以下の手順に従って、DebianシステムにComposerをインストールします。
-
まず、パッケージインデックスを更新し、次のコマンドを使用して必要なパッケージをインストールします。
sudo apt update
sudo apt install php-cli php-zip wget unzip
-
依存関係がインストールされたら、php cli tollを使用してComposerインストールスクリプトをダウンロードします:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
上記のコマンドは、
composer-setup.php
をダウンロードします。 現在の作業ディレクトリにあるファイル。 -
スクリプト
SHA-384
を比較して、スクリプトデータの整合性を検証します Composer Public Keys/Signaturesページにある最新のインストーラーハッシュを使用したハッシュ。次の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インストールスクリプトを再ダウンロードし、$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
この時点で、DebianシステムにComposerがインストールされています。システム全体のコマンドとしてインストールされ、すべてのユーザーが利用できるようになります。
-
インストールを確認するには、次のように入力します。
composer
上記のコマンドは、Composerのバージョン、コマンド、および引数を出力します。
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
php composer-setup.php
を実行します。 composer.phar
という名前のファイルが作成されます 現在の作業ディレクトリにあります。 ./composer.phar <command>.
を実行すると、composerを使用できます。 Composerの使用を開始する#
DebianシステムにComposerがインストールされたので、Composerを使用してPHPプロジェクトを作成する方法を説明します。
プロジェクトルートとなるディレクトリを作成することから始め、composer.json
を保持します ファイル。このファイルは、PHPの依存関係やその他のメタデータを含むPHPプロジェクトについて説明しています。
プロジェクトディレクトリを作成し、次のコマンドで切り替えます:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
次に、新しいcomposer.json
を初期化します composer require <package name>
が必要です コマンドを実行し、ダウンロードするパッケージを指定します。この例では、carbonというパッケージを使用して現在の時刻を印刷するサンプルアプリケーションを作成します。
次のコマンドを実行して、新しいcomposer.json
を初期化します。 カーボンパッケージをファイルしてインストールします:
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.4.17): Downloading (100%)
- Installing nesbot/carbon (1.34.0): 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
Composerはcomposer.json
を作成します カーボンとそのすべての依存関係をファイルしてダウンロードしてインストールします。
ls
を使用してプロジェクトのディレクトリを一覧表示する場合 コマンドを実行すると、2つのファイルcomposer.json
が含まれていることがわかります。 およびcomposer.lock
、およびvendor
ディレクトリ。
ls -l
-rw-r--r-- 1 linuxize users 60 Oct 16 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Oct 16 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Oct 16 21:02 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-10-16 21:08:45
後で、プロジェクトパッケージを更新する必要がある場合は、次のように入力します。
composer update
上記のコマンドは、インストールされているパッケージの新しいバージョンをチェックし、新しいバージョンが見つかり、バージョンの制約がcomposer.json
で指定されたものと一致するかどうかを確認します。 、Composerがパッケージを更新します。