ComposerはPHPの依存関係マネージャーです(Node.jsのnpmまたはPythonのpipに似ています)。
Composerを使用すると、プロジェクトが依存するPHPライブラリーを指定でき、すべてのライブラリーと依存関係をプルして管理します。 Composerは、Laravel、Symfony、Drupal、Magentoなどの最新のPHPフレームワークとプラットフォームすべてで使用されています。
このチュートリアルでは、Ubuntu20.04にComposerをインストールして使用する方法について説明します。
UbuntuへのPHPComposerのインストール#
Composerをインストールする前に、システムに必要な要件がすべてインストールされていることを確認してください。
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composerは、Composerのインストールに使用するPHPで記述されたインストーラーを提供します。 wget
を使用する インストーラーをダウンロードするには:
wget -O composer-setup.php https://getcomposer.org/installer
上記のコマンドは、ファイルをcomposer-setup.php
として保存します。 現在の作業ディレクトリにあります。
Composerは単一ファイルのCLIアプリケーションであり、グローバルにインストールすることも、プロジェクトの一部としてインストールすることもできます。グローバルインストールにはsudo権限が必要です。
-
すべてのユーザーが使用できるシステム全体のコマンドとしてComposerをグローバルにインストールするには、システムの
PATH
にあるディレクトリにファイルを配置するだけです。 。次のコマンドを実行して、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.10.7) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
composer
を実行してComposerを使用できるようになりました ターミナルで。 -
Composerをローカルにインストールするには、次のように入力します。
sudo php composer-setup.php --install-dir=/path/to/project
これにより、
composer.phar
という名前のファイルがダウンロードされます。 プロジェクトのルートディレクトリにあります。 Composerを使用するには、プロジェクトディレクトリに移動し、php composer.phar
を実行します。
新しいComposerバージョンが利用可能になったら、次のコマンドを使用してインストールを更新できます。
sudo composer self-update
Composerの使用を開始する#
ComposerがUbuntuシステムにインストールされたので、Composerを使用してPHPプロジェクトを作成する方法を見てみましょう。
最初のステップは、プロジェクトのルートディレクトリを作成し、そこに移動することです。
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
この例では、carbonというPHPパッケージを使用して、現在の時刻を印刷するサンプルアプリケーションを作成します。
次のコマンドを実行して、新しいComposerプロジェクトを初期化し、carbonパッケージをインストールします。
composer require nesbot/carbon
Using version ^2.35 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.2): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.17.0): Downloading (100%)
- Installing symfony/translation (v5.1.2): Downloading (100%)
- Installing nesbot/carbon (2.35.0): Downloading (100%)
Writing lock file
Generating autoload files
5 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 linuxize linuxize 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 linuxize linuxize 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 linuxize linuxize 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行ずつ分析してみましょう。
vendor/autoload.php
ファイルはComposerによって自動的に生成され、すべてのライブラリが自動ロードされます。
次の行はエイリアスCarbon
を作成します 最後の行は、Carbon now
を使用して現在の時刻を出力します メソッド。
次のように入力してスクリプトを実行します:
php testing.php
出力は次のようになります。
Now: 2020-06-17 20:41:04
後で、プロジェクトパッケージを更新する必要がある場合は、次のように入力します。
composer update
上記のコマンドは、インストールされているパッケージの新しいバージョンをチェックし、新しいバージョンが見つかり、バージョンの制約がcomposer.json
で指定されたものと一致するかどうかを確認します。 、Composerがパッケージを更新します。