"BOKU"のITな日常

BOKUが勉強したり、考えたことを頭の整理を兼ねてまとめてます。

PHPの依存性管理ツール「Composer」のインストールと簡単な使い方/Windows10

f:id:arakan_no_boku:20190922143447p:plain

目次

PHPの依存性管理ツール「Composer」のインストールと簡単な使い方

PHPも他の言語と同じく、のライブラリやフレームワークコンポーネントが大量にあって、それらをうまく組み合わせてプログラムを作る場合があります。

そうなると、ライブラリ同志の依存関係の問題がでてきます。

あるライブラリが、別のライブラリの特定のバージョンを動作前提にしていたりするとかが普通に発生します。

この依存関係の管理を手作業でするのは無茶なので、ツールを使います。

 

Composerを選択する理由

PHPにはComposerとPEARという2種類の依存性管理ツールが双璧らしいです。

どっちが良いかですが、「PHP The Right Way」という記事を読むと

Composerは、PHP用としておすすめの依存管理ツールだ。 

と書かれていて、対して「PEAR」は。

PEARの個々のパッケージは、ルールに従った構造にしておかないといけない。

つまり、PEARで使えるようにするにはパッケージの作者がきちんと準備しておかないといけないってことだ。 

と書いてバッサリいってます。

ということで「Composer」を使うことに決定です。  

 

Composerをインストール 

Windowsへのインストールで一番簡単なのは [ComposerSetup] インストーラーを使う方法だそうです。

すべてのユーザーで使えるようにインストールしたうえで $PATH も設定してくれて、 コマンドラインから composer を呼ぶだけで使えるようになるということなので、それでやらない手はありません。

上記インストーラーのダウンロードはこちらからできます。

getcomposer.org

上の方にWindowsインストーラーがあります。

実行します。

最初にこんな画面で「developper mode」みたいな意味ありげなチェックボックスがでてきますけど、チェックしなくていいみたいです。

f:id:arakan_no_boku:20190922151110p:plain

あとは、ほぼデフォルトでNEXTを押していけば良くて、悩むところはないです。

僕の環境では、XAMPPを使っていますが、XAMPPのphp.exeのパスも自動的に見つけてくれました。

コマンドプロンプトを立ち上げて「composer」と打ち込んでみます。

f:id:arakan_no_boku:20190922232918p:plain

うん。

インストールはできてるみたいです。

 

Composerで新規ライブラリをインストール

基本は、「composer require」を使ってインストールします。

そうすれば、依存関係なんかも考慮して、必要なものがあれば、一緒にインストールしてくれるということなので、そのへんはPythonのpipなんかと同じですね。

 ただ、Composerにはpipとかと決定的に違う点があります。

インストール方法に「グローバル」と「ローカル」の2種類あることです。

例えば、friend/php-cs-xxxというライブラリを例にすると。

グローバルにインストールする場合は「global」をつけます。

composer global require friend/php-cs-xxx

ローカルにインストールする場合はつけません。

composer require friend/php-cs-xxx

です。

 

グローバルとローカルではインストールされる場所が異なる

グローバルとローカルの違いはインストールされる場所です。

globalをつけた場合は

C:\Users\xxxx\AppData\Roaming\Composer\vendor

 (xxxxはユーザによって変わります。)

の下に、サブフォルダを作ってインストールされます。

対して。

globalをつけないと、カレントフォルダのvendorフォルダにインストールされます。

つまり、プロジェクト固有で使う場合です。

気を付けないといけないのは、必ずプロジェクトフォルダをカレントフォルダにして実行することですね。

でないと、変なとことにvendorフォルダができてめんどくさいことになります。

 

Composerでインストール墨ライブラリを最新の状態に更新

重要な修正などがはいったなどの理由で、環境のライブラリのバージョンをあげないといけなくなる時がきます。

そうしたとき依存関係を環境まるごと最新の状態に更新するには

composer  update

を実行します。

個別に・・、たとえば、friend/php-cs-xxxを更新するなら。

composer global update friend/php-cs-xxx

とします。

 

設定ファイル:composer.json

composerでインストールしたものの設定ファイルが「composer.json」です。

基本は

composer require を実行すると、プロジェクトの依存関係を追加する。

もしまだ composer.json がなければ、新しいファイルを作る。

ということなので、安心です。

でも、中には自分の環境にあわせて、composer.jsonを修正してやらないといけないものもあります。

そんな場合は、composer.jsonを修正・保存して。

composer dump-autoload

 って実行してオートローダーに登録してやる手順になります。

 

設定ファイル:composer.lock

もうひとつ、composer.lockというファイルがあります。

ダウンロード済のライブラリやバージョンが記録されているファイルです。

他の環境にうつるときは、このファイルをもっていって、その環境で

composer install

すれば、元の環境と同じライブラリの同バージョンがダウンロードされるみたいです。

これは楽ですね。

開発環境から本番にもっていくときに、composer.lockをもっていくだけでOKというのは非常に魅力的です。

 

 

今回は、こんなとこですかね。

ではでは。