Debian8にComposerをインストールして使用する方法
序章
Composer は、PHPで人気のある依存関係管理ツールであり、主にプロジェクトの依存関係のインストールと更新を容易にするために作成されました。 特定のプロジェクトが依存している他のパッケージをチェックし、プロジェクトの要件に応じて適切なバージョンを使用してそれらをインストールします。
このチュートリアルでは、Debian8サーバーにComposerをインストールして使用を開始する方法を示します。
前提条件
このチュートリアルでは、次のものが必要になります。
- Debian 8を使用した初期サーバーセットアップに示すように、root以外のsudoユーザーを使用する1台のDebian8サーバー
ステップ1—依存関係のインストール
Composerをダウンロードしてインストールする前に、サーバーに必要なすべての依存関係がインストールされていることを確認する必要があります。
まず、パッケージマネージャーのキャッシュを更新します。
- sudo apt-get update
それでは、依存関係をインストールしましょう。 必要になります curl
Composerをダウンロードするために php5-cli
、それをインストールして実行するためのPHPパッケージ。 Composerは git
、バージョン管理システム、プロジェクトの依存関係をダウンロードします。 次のコマンドを使用して、これら3つのパッケージすべてを一度にインストールできます。
- sudo apt-get install curl php5-cli git
重要な依存関係がインストールされたので、次に進んでComposer自体をインストールします。
ステップ2—Composerのダウンロードとインストール
Composerの公式ドキュメントに記載されている手順に従い、Composerをグローバルにインストールするための小さな変更を加えます。 /usr/local/bin
. これにより、サーバー上のすべてのユーザーがComposerを使用できるようになります。
インストーラーをにダウンロードします /tmp
ディレクトリ。
- php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"
作曲家のパブキーと署名のページにアクセスし、上部にあるSHA-384文字列をコピーします。 次に、次のコマンドを置き換えて実行します sha_384_string
コピーした文字列を使用します。
- php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === 'sha_384_string') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"
このコマンドは、ComposerのWebサイトから正しいハッシュを使用してダウンロードしたファイルのハッシュをチェックします。 一致する場合は、インストーラー検証済みを出力します。 一致しない場合は、 Installercorrupt が出力されます。その場合は、SHA-384文字列を正しくコピーしたことを再確認する必要があります。
次に、Composerをインストールします。 グローバルにインストールするには /usr/local/bin
、を使用します --install-dir
国旗; --filename
Composerの実行可能ファイルの名前をインストーラーに通知します。 これを1つのコマンドで行う方法は次のとおりです。
- sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
次のようなメッセージが表示されます。
OutputAll settings correct for using Composer
Downloading...
Composer (version 1.3.2) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
バージョンを確認することで、Composerが正しくインストールされていることを確認できます。
- composer --version
インストールされたバージョンが表示されます。 この記事の執筆時点でのバージョンは次のとおりです。
Composer version 1.3.2 2017-01-27 18:23:41
最後に、インストーラースクリプトは不要になったため、安全に削除できます。
- rm /tmp/composer-setup.php
これでComposerがセットアップされて実行され、プロジェクトで使用されるのを待っています。 次のセクションでは、を生成します composer.json
ファイル。プロジェクトが依存するPHPライブラリが含まれています。
ステップ3—composer.jsonファイルを生成する
プロジェクトでComposerを使用するには、 composer.json
ファイル。 The composer.json
fileは、プロジェクトにダウンロードする必要のある依存関係と、各パッケージのインストールが許可されているバージョンをComposerに通知します。 これは、プロジェクトの一貫性を維持し、下位互換性の問題を引き起こす可能性のある不安定なバージョンのインストールを回避するために重要です。
このファイルを手動で作成する必要はありません。 そうすると、構文エラーが発生しやすくなります。 Composerは自動生成します composer.json
を使用してプロジェクトに依存関係を追加するときのファイル require
指図。 このファイルを手動で編集しなくても、同じ方法で依存関係を追加することもできます。
Composerを使用してプロジェクトの依存関係としてパッケージをインストールするプロセスには、通常、次の手順が含まれます。
- アプリケーションに必要なライブラリの種類を特定する
- Composerの公式リポジトリであるPackagist.orgで適切なオープンソースライブラリを調べてください
- 依存したいパッケージを選択してください
- 走る
composer require
に依存関係を含めるにはcomposer.json
ファイルを作成してパッケージをインストールします
簡単なデモアプリケーションを使用して、これが実際にどのように機能するかを見ていきます。
このアプリケーションの目的は、特定の文をURLに適した文字列であるslugに変換することです。 これは、ページタイトルをURLパスに変換するために使用されます(このチュートリアルのURLの最後の部分のように)。
プロジェクトのディレクトリを作成することから始めましょう。 これをslugifyと呼びます。
- cd ~
- mkdir slugify
- cd slugify
次に、使用する必要のあるライブラリを検索しましょう。
Packagistでパッケージを検索する
次に、 Packagist で、スラッグの生成に役立つパッケージを検索します。 「スラッグ」を検索すると、パッケージのリストが表示されます。 リストの各パッケージの右側に、2つの数字が表示されます。上の数字はパッケージがインストールされた回数を示し、下の数字はパッケージがGitHubでスターされた回数を示します。
一般的に、インストール数とスター数が多いパッケージは、多くの人が使用しているため、より安定する傾向があります。 パッケージの説明をチェックして、パッケージが本当に探しているものであることを確認することも重要です。
必要なのは、単純なストリングからスラグへのコンバーターです。 ここでは例として、パッケージを使用します cocur/slugify
. 適度な数のインスタレーションとスターがあるので、それは良い一致のようです。
Packagistのパッケージには、ベンダー名とパッケージ名があります。 各パッケージには、GitHubがリポジトリに使用するのと同じ形式の一意の識別子(名前空間)があります。 vendor/package
. インストールするライブラリは名前空間を使用します cocur/slugify
. 名前空間は、プロジェクトでパッケージを要求するために必要なものです。
必要なライブラリを特定したので、それをに追加しましょう。 composer.json
ファイル。
パッケージが必要
実行できます composer require
ライブラリを依存関係として含め、さらに composer.json
プロジェクトのファイル:
- composer require cocur/slugify
OutputUsing version ^2.3 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing cocur/slugify (v2.3) Downloading: 100%
Writing lock file
Generating autoload files
出力からわかるように、Composerはパッケージのどのバージョンを使用するかを自動的に決定しました。 ここでプロジェクトのディレクトリを確認すると、2つの新しいファイルが含まれています。 composer.json
と composer.lock
、および vendor/
ディレクトリ:
- ls -l
Outputtotal 12
-rw-r--r-- 1 sammy sammy 59 Feb 1 13:43 composer.json
-rw-r--r-- 1 sammy sammy 2896 Feb 1 13:43 composer.lock
drwxr-xr-x 4 sammy sammy 4096 Feb 1 13:43 vendor
The composer.lock
fileは、各パッケージのインストールされているバージョンに関する情報を格納するために使用されます。他の誰かがプロジェクトのクローンを作成してその依存関係をインストールする場合は、同じバージョンが使用されていることを確認してください。 The vendor/
ディレクトリは、プロジェクトの依存関係が配置されている場所です。 The vendor/
フォルダはバージョン管理にコミットしないでください。 含める必要があるのは composer.json
と composer.lock
ファイル。
注:すでに含まれているプロジェクトをインストールする場合 composer.json
ファイル、実行する必要があります composer install
プロジェクトの依存関係をダウンロードするため。
あなたはそれに気付くかもしれません composer.lock
ファイルには、プロジェクトが依存するPHPライブラリのバージョンに関する特定の情報が含まれています。 Composerは、特別な構文を使用して、ライブラリを特定のバージョンに制限します。 それがどのように機能するか見てみましょう。
バージョンの制約を理解する
内容を確認すれば composer.json
ファイルの場合、次のように表示されます。
- cat composer.json
{
"require": {
"cocur/slugify": "^2.3"
}
}
キャレットがあります、 ^
、バージョン番号の前。 Composerは、プロジェクトを安定させながら柔軟性を提供するために、必要なパッケージバージョンを定義するためのいくつかの異なる制約と形式をサポートしています。 自動生成で使用されるキャレット演算子 composer.json
ファイルは、セマンティックバージョニングに続いて、相互運用性を最大化するために推奨される演算子です。 この場合、互換性のある最小バージョンとして 1.3 を定義し、2.0より前の将来のバージョンへの更新を許可します。 バージョンの理論的根拠の詳細については、Composerのバージョン管理ドキュメントを参照してください。
これまで、Composerを使用してプロジェクトに必要なPHPライブラリを追加および制限する方法を見てきました。 composer.json
ファイル。 次のステップは、アプリケーション内でこれらのライブラリを実際に使用することです。 その目的のために、Composerは autoload.php
外部ライブラリのロードプロセスを容易にするファイル。
ステップ4—自動ロードスクリプトを含める
Composerは、プロジェクトに含めて自動ロードを無料で取得できる自動ロードスクリプトを提供します。 これにより、依存関係の操作と独自の名前付けの定義がはるかに簡単になります。 あなたがする必要がある唯一のことは含めることです vendor/autoload.php
クラスのインスタンス化の前に、PHPスクリプトでファイルを作成します。
に戻りましょう slugify
サンプルアプリケーション。 使用する nano
またはお気に入りのテキストエディタで、 test.php
を使用するスクリプト cocur/slugify
図書館。
- nano test.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Cocur\Slugify\Slugify;
$slugify = new Slugify();
echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');
次のコマンドラインでスクリプトを実行できます。
- php test.php
これにより、次の出力が生成されます。
Outputhello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
Composerを完全にセットアップしましたが、インストールを維持する方法を学ぶために読んでください。
ステップ5— Composerとプロジェクトの依存関係を更新する(オプション)
Composer自体を更新するには、組み込みコマンドを使用できます self-update
それが提供します。 Composerはグローバルにインストールされるため、root権限でコマンドを実行する必要があります。
- sudo -H composer self-update
1つ以上の特定のライブラリを更新するには、それらを具体的にリストします。 composer update
.
- composer update namespace/package
プロジェクトのすべての依存関係を更新する場合は、 update
指図。
- composer update
これにより、プロジェクトで必要なライブラリの新しいバージョンがチェックされます。 新しいバージョンが見つかり、それがで定義されたバージョン制約と互換性がある場合 composer.json
ファイル、それはインストールされた前のバージョンを置き換えます。 The composer.lock
これらの変更を反映するようにファイルが更新されます。
結論
Composerは、すべてのPHP開発者がユーティリティベルトに持つべき強力なツールです。 プロジェクトの依存関係を管理するための簡単で信頼性の高い方法を提供するだけでなく、コミュニティによって作成されたPHPパッケージを共有および検出するための新しいデファクトスタンダードも確立します。
このチュートリアルでは、Composerの基本について簡単に説明しました。インストール方法、プロジェクトの作成方法とパッケージの検索方法、およびComposerの保守方法です。 詳細については、公式のComposerドキュメントをご覧ください。