Ubuntu18.04にComposerをインストールして使用する方法

前書き

[ Composer](https://getcomposer.org/)は、人気のあるPHP 依存関係管理ツールであり、主にプロジェクトの依存関係のインストールと更新を促進するために使用されます。特定のプロジェクトが依存している他のソフトウェアパッケージを、プロジェクトの要件に応じて適切なバージョンを使用してチェックし、インストールします。

このチュートリアルでは、Ubuntu18.04システムにComposerをインストールして使用を開始します。

準備 ##

このチュートリアルを完了するには、次のものが必要です。

ステップ1-依存関係をインストールする

Composerをダウンロードしてインストールする前に、サーバーにすべての依存関係がインストールされていることを確認する必要があります。

まず、次のコマンドを実行して、パッケージマネージャーのキャッシュを更新します。

sudo apt update

それでは、依存関係をインストールしましょう。 Composerをダウンロードするには curlが必要で、インストールして実行するには php-cliが必要です。使用するライブラリに機能を提供するには、 php-mbstringパッケージが必要です。これは、 gitComposerがプロジェクトの依存関係をダウンロードし、 unzipによって圧縮パッケージを抽出するために使用されます。次のコマンドですべてをインストールできます。

sudo apt install curl php-cli php-mbstring git unzip

前提条件をインストールした後、Composerを自分でインストールできます。

ステップ2-Composerをダウンロードしてインストールします

Composerは、PHPで記述された[インストーラー](https://getcomposer.org/installe)を提供します。ダウンロードして破損していないか確認し、Composerのインストールに使用します。

ホームディレクトリにいることを確認してから、 curlを使用してインストーラーを取得します。

cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php

次に、インストーラーが[Composer Public Keys / Signatures](https://cloud.tencent.com/developer/article/write?from=10680#)ページにある最新のインストーラーのSHA-384hashと一致することを確認します。そのページからハッシュをコピーし、シェル変数として保存します。

HASH=544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061

強調表示された値を最新のハッシュに置き換えてください。

次に、次のPHPスクリプトを実行して、インストールスクリプトが安全に実行できることを確認します。

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

「Installercorrupt」が表示された場合は、インストールスクリプトを再度ダウンロードして、正しいハッシュを使用しているかどうかを再確認する必要があります。次に、コマンドを実行してインストーラーを再度確認します。確認済みのインストーラーを入手したら、続行できます。

composerをグローバルにインストールするには、次のコマンドを使用します。これにより、Composerが / usr / local / binにある composerという名前のシステム全体のコマンドとしてダウンロードおよびインストールされます。

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

次の出力が表示されます。

All settings correct for using Composer
Downloading...
​
Composer(version 1.6.5) successfully installed to:/usr/local/bin/composer
Use it: php /usr/local/bin/composer

インストールをテストするには、以下を実行します。

composer

この出力には、Composerのバージョンとパラメーターが表示されます。

   ______
 / ____/___  ____ ___  ____  ____  ________  _____
 /// __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___///___//_////////_///_/(__  )  __/ /
\____ /\____/_//_//_/.___/\____/____/\___/_//_/
Composer version 1.6.52018-05-0411:44:59
​
Usage:
 command [options][arguments]
​
Options:-h,--help                     Display this help message
 - q,--quiet                    Do not output any message
 - V,--version                  Display this application version
  - - ansi                     Force ANSI output
  - - no-ansi                  Disable ANSI output
 - n,--no-interaction           Do not ask any interactive question
  - - profile                  Display timing and memory usage information
  - - no-plugins               Whether to disable plugins.-d,--working-dir=WORKING-DIR  If specified, use the given directory as working directory.-v|vv|vvv,--verbose           Increase the verbosity of messages:1for normal output,2for more verbose output and 3for debug
...

これにより、Composerがシステムに正常にインストールされ、システム全体で使用できることが確認されます。

**注:**このサーバーでホストされているプロジェクトごとにComposer実行可能ファイルが必要な場合は、プロジェクトごとにローカルにインストールできます。 NPMのユーザーは、この方法に精通しています。この方法は、システムユーザーがシステムにソフトウェアをインストールする権限を持っていない場合にも役立ちます。

これを行うには、コマンド phpcomposer-setup.phpを使用します。これにより、現在のディレクトリに composer.pharを使用してファイルが生成され、。/ composer.pharコマンド で使用できます。

次に、Composerを使用して依存関係を管理する方法を見てみましょう。

ステップ3-PHPプロジェクトでComposerを使用する

PHPプロジェクトは通常、外部ライブラリに依存しており、これらの依存関係とそのバージョンの管理には注意が必要です。 Composerは、依存関係を追跡し、他のユーザーが簡単にインストールできるようにすることで、この問題を解決します。

プロジェクトでComposerを使用するには、 composer.jsonファイルが必要です。 composer.jsonファイルは、プロジェクトにダウンロードする必要のある依存関係と、各パッケージのどのバージョンをインストールできるかをComposerに通知します。これは、プロジェクトの一貫性を維持し、下位互換性の問題を引き起こす可能性のある不安定なバージョンのインストールを回避するために非常に重要です。

このファイルを手動で作成する必要はありません。これを行うと、構文エラーが発生しやすくなります。 composer.json requireコマンドを使用してプロジェクトに依存関係を追加すると、Composerは自動的にファイルを生成します。このファイルを手動で編集しなくても、同じ方法で他の依存関係を追加できます。

Composerを使用してパッケージをプロジェクトの依存関係としてインストールするプロセスには、次の手順が含まれます。

デモアプリケーションで試してみましょう。

このアプリケーションの目的は、特定の文をURLに適した文字列(スラッグ)に変換することです。これは通常、ページタイトルをURLパスに変換するために使用されます(このチュートリアルのURLの最後の部分のように)。

プロジェクトのディレクトリを作成することから始めましょう。これを** slugify **と呼びます:

cd ~
mkdir slugify
cd slugify

次に、[Packagist.org](https://packagist.org/)で、スラッグの生成に役立つパッケージを検索します。 Packagistで「slug」という単語を検索すると、次のような結果が得られます。

リストの各パッケージの右側に2つの番号が表示されます。上部の数字はパッケージのインストール数を示し、下部の数字はパッケージが[GitHub](https://github.com/)でスター付けされた回数を示します。これらの番号に基づいて検索結果を並べ替えることができます(検索バーの右側にある2つのアイコンを探してください)。一般的に言って、より多くのデバイスとより多くの星を含むパッケージは、多くの人々がそれらを使用するため、より安定する傾向があります。パッケージの説明の関連性をチェックして、それが必要なものであることを確認することも重要です。

単純なストリングからスラグへのコンバーターが必要です。検索結果から、 cocur / slugifyパッケージは、適切な数のインストールとスターがあり、よく一致しているようです。 (パッケージはスクリーンショットが示すよりも深いです。)

Packagistのパッケージには、ベンダー名とパッケージ名があります。各パッケージには、GitHubがリポジトリに使用する vendor / packageの形式の一意の識別子(名前空間)があります。インストールするライブラリは、 cocur / slugif名前名を使用します。プロジェクト内のパッケージをリクエストするには、名前名が必要です。

インストールするパッケージが正確にわかったので、 composer requireを実行してそれを依存関係として含め、プロジェクトの composer.jsonファイルを生成します。

composer require cocur/slugify

Composerが依存関係をダウンロードすると、次の出力が表示されます。

Using version ^3.1for cocur/slugify
. /composer.json has been created
Loading composer repositories withpackage information
Updating dependencies(including require-dev)
Package operations:1 install,0 updates,0 removals
 - Installing cocur/slugify(v3.1):Downloading(100%)
Writing lock file
Generating autoload files

出力からわかるように、Composerは使用するパッケージのバージョンを自動的に決定します。ここでプロジェクトディレクトリを確認すると、 composer.json composer.lockの2つの新しいファイルと、 vendorディレクトリが含まれています。

ls -l
total 12-rw-rw-r--1 sammy sammy   59 Jul 1116:40 composer.json
- rw-rw-r--1 sammy sammy 2934 Jul 1116:40 composer.lock
drwxrwxr-x 4 sammy sammy 4096 Jul 1116:40 vendor

composer.lockファイルは、各パッケージのインストール済みバージョンに関する情報を保存し、他のユーザーがプロジェクトのクローンを作成してその依存関係をインストールするときに同じバージョンが使用されるようにするために使用されます。 vendorディレクトリは、プロジェクトの依存関係が配置されている場所です。 vendorフォルダーをバージョンコントロールに送信する必要はありません。** composer.json ファイルと composer.lock **ファイルを含めるだけで済みます。

すでに composer.jsonファイルが含まれているプロジェクトをインストールする場合は、 composerinstallを実行してプロジェクトの依存関係をダウンロードしてください。

バージョン制限を見てみましょう。 composer.jsonファイルの内容を確認すると、次のように表示されます。

cat composer.json
{" require":{"cocur/slugify":"^3.1"}}
sam

composer.jsonのバージョン番号の前に特殊文字^があります。 Composerは、プロジェクトを安定させながら柔軟性を提供するために、必要なパッケージバージョンを定義するために、いくつかの異なる制約と形式をサポートしています。 [セマンティックバージョン管理](http://semver.org/)の後、自動生成された composer.jsonファイルで使用されるcaret(^)演算子は、最大の相互運用性を実現するために推奨される演算子です。この場合、互換性のある最小バージョンとして** 3.1 を定義し、 4.0 **より前の将来のバージョンへの更新を許可します。

一般的に、 composer.jsonファイルのバージョン制約を改ざんする必要はありません。ただし、状況によっては、制約を手動で編集する必要がある場合があります。たとえば、必要なライブラリのメジャーな新しいバージョンをリリースしてアップグレードする場合や、使用するライブラリがセマンティックバージョンの制御に従わない場合などです。

Composerのバージョン制約がどのように機能するかをよりよく理解するのに役立ついくつかの例を次に示します。

制約 意味 許可されているサンプルバージョン
^ 1.0 > = 1.0 <2.0 1.0,1.2.3,1.9.9
^ 1.1.0 > = 1.1.0 <2.0 1.1.0,1.5.6,1.9.9
〜1.0 > = 1.0 <2.0.0 1.0,1.4.1,1.9.9
〜1.0.0 > = 1.0.0 <1.1 1.0.0,1.0.4,1.0.9
1.2.1 1.2.1 1.2.1
1. * > = 1.0 <2.0 1.0.0,1.4.5,1.9.9
1.2 。* > = 1.2 <1.3 1.2.0,1.2.3,1.2.9

Composerのバージョン制約の詳細については、[公式ドキュメント](https://getcomposer.org/doc/articles/versions.md)を参照してください。

次に、Composerを使用して依存関係を自動的にロードする方法を見てみましょう。

ステップ4-自動ロードスクリプトを含める

PHP自体はクラスを自動的にロードしないため、Composerは、プロジェクトに含めることができる自動ロードスクリプトを提供して、無料で自動的にロードします。これにより、依存関係を使いやすくなります。

クラスをインスタンス化する前に、PHPスクリプトに vendor / autoload.phpファイルを含めるだけです。最初の依存関係を追加すると、Composerはこのファイルを自動的に生成します。

私たちのアプリで試してみましょう。ファイル test.phpを作成し、テキストエディタで開きます。

nano test.php

次のコードを追加します。このコードは、 vendor / autoload.phpファイルをインポートし、 cocur / slugify依存関係をロードし、それを使用してスラッグを作成します。

<? php
require __DIR__ .'/vendor/autoload.php';
​
use Cocur\Slugify\Slugify;
​
$slugify =newSlugify();
​
echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

ファイルを保存して、エディターを終了します。

次に、スクリプトを実行します。

php test.php

これにより、出力 hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-itが生成されます。

新しいバージョンが表示されたら、依存関係を更新する必要があるので、その対処方法を見てみましょう。

ステップ5-プロジェクトの依存関係を更新する

プロジェクトの依存関係を新しいバージョンに更新する場合は常に、次の updateコマンドを実行します。

composer update

これにより、プロジェクトで必要なライブラリの新しいバージョンがチェックされます。新しいバージョンが見つかり、それが composer.jsonファイルで定義されたバージョン制約と互換性がある場合、Composerは以前にインストールされたバージョンを置き換えます。 composer.lockファイルは、これらの変更を反映するように更新されます。

次のように指定して、1つ以上の特定のライブラリを更新することもできます。

composer update vendor/package vendor2/package2

依存関係を更新した後は、必ず composer.jsonファイルと composer.lockファイルを確認して、他の人がこれらの更新されたバージョンをインストールできるようにしてください。

結論として ##

Composerは、すべてのPHP開発者がユーティリティベルトに含める必要のある強力なツールです。このチュートリアルでは、Composerをインストールし、単純なプロジェクトで使用しました。これで、依存関係をインストールおよび更新する方法がわかりました。

プロジェクトの依存関係を管理するためのシンプルで信頼性の高い方法を提供することに加えて、コミュニティによって作成されたPHPパッケージを共有および検出するための新しい事実上の標準も確立します。

その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。

参照:「Ubuntu18.04にComposerをインストールして使用する方法」

Recommended Posts

Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu20.04にComposerをインストールして使用する方法
Ubuntu20.04にDockerをインストールして使用する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
CentOS8にComposerをインストールして使用する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
Ubuntu16.04にDockerをインストールして使用する方法
Ubuntu18.04にMySQLWorkbenchをインストールして使用する方法
Ubuntu 16.04 /18.04にPycharmとIpythonをインストールする方法
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu18.04にGogsをインストールして構成する方法
CentOS7にDockerをインストールして使用する方法
Ubuntu18.04にCyberpanelをインストールして構成する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu18.04にGitLabをインストールして構成する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Ubuntu14.04にOrientDBをインストールして構成する方法
CentOS8にCurlをインストールして使用する方法
Ubuntu12.04にAppScaleをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法