ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章

Composer は、PHP用の優れた依存関係管理ツールです。 プロジェクトのニーズを宣言したライブラリを追跡し、それらをフェッチしてインストールします。 デフォルトではグローバルに使用されていないため、それ自体はパッケージマネージャーではなく、個々のプロジェクトで使用されている可能性があります。

それは何のために使われますか? いくつかのライブラリに依存し、さらに他のライブラリに依存する可能性のあるアプリケーションプロジェクトがあるとします。 小さな.jsonファイルでこれらの依存関係を宣言すると、Composerはそれらのライブラリを追跡してインストールします。

このチュートリアルでは、ComposerをVPSにインストールし、Composerがどのように機能し、何ができるかを確認します。 このために、Ubuntuを実行しているサーバーと、すでにインストールされているLAMPスタックを使用します。 Composerの特定の要件については、Linux、OS X、およびWindowsで同様に実行されますが、PHP5.3.2以降がインストールされている必要があります。

すべての要件がインストールされていることを確認してください。

sudo apt-get install php5 git php5-curl

インストール

まず、Composerをプロジェクトフォルダーにダウンロードする必要があります。 この目的のために、 / var / www ApacheWebルートフォルダーmy_projectに空のフォルダーを作成しましょう。

cd /var/www
mkdir my_project
cd my_project

次のコマンドを使用して、Composerをこのフォルダーにダウンロードします。

curl -sS https://getcomposer.org/installer | php

次のような成功メッセージが表示されます。

All settings correct for using Composer
Downloading...

Composer successfully installed to: /var/www/my_project/composer.phar
Use it: php composer.phar

プロジェクトフォルダをチェックインすると、ダウンロードされたファイルが1つだけであることがわかります。composer.phar-コマンドラインから実行できるPHPアーカイブファイル。

プロジェクトとは別のフォルダーにいるが、Composerをダウンロードするためにプロジェクトフォルダーに戻りたくない場合は、-install-dir オプションを指定すると、指定した場所にダウンロードされます。 :

curl -sS https://getcomposer.org/installer | php -- --install-dir=/var/www/another_folder

このコマンドはどこからでも実行でき、Composerは / var /wwwにあるanother_folderにインストールされます。 Composerが正しく機能しているかどうかを確認するには、次のコマンドを使用して、使用可能なコマンドのリストを表示します。

php composer.phar

Composerの使用

プロジェクトでComposerを使用するには、composer.jsonという1つのファイルが必要です。 このファイルでは、プロジェクトの依存関係について説明します。 私たちのプロジェクトが、DigitalOceanAPIとの対話を支援するDigitalOceanライブラリに依存しているとしましょう。 それでは、ファイルを作成しましょう。

nano composer.json

そして、このファイルでは、次のように貼り付けることができます。

{
    "require": {
        "toin0u/digitalocean": "1.2.1"
    }
}

ファイルを保存して終了します。 この単純なコードブロックを使用して、ベンダー toin0u によって作成されたライブラリ( digitalocean と呼ばれる)がプロジェクトに必要であることを指定します。 コロンの後に、必要なバージョンを記述します。この場合は、1..2.1です。 ここでは、必要なバージョンを指定でき、ワイルドカードを使用することもできます。 しかし、パッケージに関するこの情報はどこで入手できますか?

composer.jsonファイルPackagistで指定する必要のあるすべての情報を含む、多くのライブラリを見つけることができるすばらしいWebサイトがあります。 DigitalOceanAPIライブラリはPackagistにもあり、requireブロックで指定する必要があるものを正確に確認できます。

バージョンにワイルドカードを使用するには、次のように指定できます。

"toin0u/digitalocean": "1.2.*"

これは、 1.2 で始まるすべてのバージョン(1.2.0、1.2.1など)と一致します。 さらに、1つだけでなく、複数の依存ライブラリを指定できます。 これを行うには、requireブロックに複数のエントリを追加します。

"require": {
        "toin0u/digitalocean": "1.2.1",
        "acme/foo": "1.0"
}

プロジェクトで依存関係が指定されたので、Composerのコマンドを実行して、依存関係をフェッチしてプロジェクトにインストールする必要があります。

php composer.phar install

これにより、指定した番号に一致するパッケージの最新バージョンが検索され、プロジェクト内の /vendorというフォルダーにダウンロードされます。 この例では、 vendor / toin0u /digitaloceanフォルダーにライブラリがあります。 さらに、Composerは composer.lock ファイルを作成します。このファイルには、インストールしたパッケージの正確なバージョンを指定し、プロジェクトをそれらのバージョンにロックします。

.lock ファイルの目的は、Composerがプロジェクトに他のバージョンをインストールすることを制限することです。 そのため、installコマンドを実行すると、Composerは最初にこのファイルをチェックし、 .json ファイルが指示するものではなく、ファイルに指定されているものをインストールします。 依存関係がかなり厳しく、他の人がプロジェクトをデプロイする必要がある場合は、まったく同じバージョンのライブラリが使用されているので安心できるので、これは素晴らしいことです。

これまで見てきたように、 .lock ファイルがない場合、Composerは.jsonファイルからインストールした依存関係に基づいてファイルを作成します。 ただし、実際に .lock ファイルを上書きして、依存ライブラリを新しいバージョンにアップグレードする場合は、次のコマンドを実行できます。

php composer.phar update

これにより、 composer.json ファイルの条件に一致する依存ライブラリの最新の安定したバージョンが取得され、composer.lockファイルが新しい依存関係で上書きされます。 特定のライブラリのみを更新する場合(ほとんどの場合、これはおそらく当てはまります)、 update コマンドを実行して、更新する必要のあるパッケージを次の形式のオプションとして渡すことができます。

php composer.phar update vendor/package vendor/package2

または、ワイルドカードを使用して、特定のベンダーのすべてのパッケージを更新できます。

php composer.phar update vendor/*

自動読み込み

Composerのもう1つの優れた点は、自動読み込み機能です。 自動読み込み情報を提供するライブラリの場合、Composerはautoload.phpファイルをプロジェクトに含めることができる/vendorフォルダーに直接自動的に生成します。 次に、それらのライブラリのクラスの使用を直接開始できます。 PHPプロジェクトでは、次のように指定できます。

require 'vendor/autoload.php';

そして、あなたは行ってもいいです。

結論

Composerは、PHPの世界で広く使用されているツールです。 Composerを使用してパッケージと依存関係を管理およびインストールするプロジェクトやフレームワークは数多くあります。 したがって、それがどのように機能するかを理解することは非常に重要です。

投稿者: Danny