
ComposerはPHPの依存関係マネージャーです(Node.jsのnpmまたはPythonのpipに似ています)。
Composerは、プロジェクトが依存する必要なすべてのPHPパッケージを取り込み、それらを管理します。 Laravel、Symfony、Drupal、Magentoなどの最新のPHPフレームワークとプラットフォームすべてで使用されています。
この記事では、Debian10システムにComposerをインストールする方法について説明します。また、Composerを使用してPHPプロジェクトを作成および管理する方法についても説明します。
DebianへのComposerのインストール#
Composerをインストールする前に、Debianシステムに必要なすべてのパッケージがインストールされていることを確認してください。
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.10) 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の使用を開始する#
Debianシステムに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
./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.3): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)
- Installing symfony/translation (v5.1.3): Downloading (100%)
- Installing nesbot/carbon (2.38.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
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more
出力に示されているように、Composerはcomposer.json
を作成します カーボンとそのすべての依存関係をファイルし、ダウンロードしてインストールします。
ls
を使用してプロジェクトのディレクトリを一覧表示する場合 、2つのファイルcomposer.json
が含まれていることがわかります およびcomposer.lock
、およびvendor
ディレクトリ。
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 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: 2020-08-17 21:08:45
後で、プロジェクトパッケージを更新する必要がある場合は、次のように入力します。
composer update
上記のコマンドは、インストールされているパッケージの新しいバージョンをチェックし、新しいバージョンが見つかり、バージョンの制約がcomposer.json
で指定されたものと一致するかどうかを確認します。 、Composerがパッケージを更新します。