「composerのメリットってなんだろう?別に使わなくてもいいんじゃないの?」
こんな思いをお持ちではないでしょうか。
そこで今回は、PHPで必須のcomposerを解説しました。
composerの利用例も解説しているので、ぜひ参考にしてみてくださいね。
composerの役割
パッケージとはなにか?
パッケージというのは、開発する際に便利な仕組みや関数をまとめたプログラムのことです。
パッケージというものは、システム開発において流用されることを前提として作られています。
Laravelで使われているパッケージを確認する
では、ここで具体的にパッケージがどのようなものか見ていきます。
例えば、WEBフレームワークとして有名なLaravel のソースコードのcomposer.jsonというファイルを一部を見てみると、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": [ "framework", "laravel" ], "license": "MIT", "require": { "php": "^7.3|^8.0", "fideloper/proxy": "^4.4", "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", "laravel/framework": "^8.12", "laravel/tinker": "^2.5" }, ... |
Laravelは「guzzlehttp/guzzle」というパッケージを利用して作られていることがわかります。
もし、guzzlehttpのプログラムがパッケージとして無ければ、guzzlehttpで書かれている内容を開発者自ら開発する必要がありました。
しかし、パッケージという仕組みによって、開発者自らそれらを開発する必要はなくなります。
composerを使うなら、3つのファイルを理解すべし
composerは次の3つのファイルについて理解しておけば、まず開発に困りません。
composer.pharは、composerの実行ファイル
composer.pharはcomposerにおける実行ファイルです。
自分のPHPのプロジェクトにcomposerをインストールすると、自動的にcomposer.pharというファイルが生成されます。
このファイルを実行することで、composerのコマンドを実行できるようになります。
composer.jsonにはcomposerの設定を書く
composerをインストールすると、composer.jsonというファイルも生成されます。
これはcomposerの設定を記述するためのファイルです。
パッケージの依存関係を記録するcomposer.lock
composer.lockはcomposer installを実行したときに作られるファイルです。
composer install実行時のパッケージの依存関係を自動に書き込まれるようになっています。
実際に開発を進める上では、編集することはほとんどありません。
composerでよく使うコマンド
開発でよく利用するcomposerのコマンドを2つ、紹介していきます。
composer install
開発で一番利用するコマンド、composer install。
実行するコマンドはこのようになります。
1 2 3 4 5 |
// 実行ファイルを指定して実行 php composer.phar install // ↓これでもOK composer install |
If there is a
composer.lock
file in the current directory, it will use the exact versions from there instead of resolving them. This ensures that everyone using the library will get the same versions of the dependencies.If there is no
composer.lock
file, Composer will create one after dependency resolution.
とあります。
要約すると、
composer.lockがあればcomposer.lockを基にパッケージをインストールします。
composer.lockがなければ、composer.jsonを基にパッケージをインストールする。
という仕様になっています。
composer update
開発で次に実行するコマンドは、composer updateです。
実行するコマンドは次のようになります。
1 2 3 4 5 |
// composer.pharを指定して実行する php composer.phar update // ↓これでもOK composer update |
composerのリファレンスにこのようにあります。
In order to get the latest versions of the dependencies and to update the
composer.lock
file, you should use theupdate
command. This command is also aliased asupgrade
as it does the same asupgrade
does if you are thinking ofapt-get
or similar package managers.
要約すると、composer.lockの依存関係を更新する(update) する、ということです。
composer のメリット
composerを使うためのメリットを解説していきます。
composerを使うメリット
composerを使うメリットは3つです。
パッケージ管理の手間が省ける
パッケージを利用することでプログラムを便利に書くことができます。
PHPのパッケージは、gihubなどでオープンソースになっており、世界の開発者が開発したソースコードを利用しながら開発をすすめることができます。
しかし、一方で利用するパッケージが増えてくると、それらを管理するのも大変ものです。
composerを使えば、そういった管理の手間から解放されます。
環境構築が簡単にできる
composerを利用することでLaravelや、CakePHPなどの有名なWEBフレームワークの環境をコマンド、一つでセットアップすることができます。
例えば、Laravelの場合は次のようなコマンドを実行すると、Laravelのソースコードが生成されます。
1 |
composer create-project laravel/laravel your-project-name --prefer-dist |
開発環境ごとにパッケージをインストールできる
開発を進めていると、
「開発時はAというパッケージは必要だけど、本番環境にはAというパッケージは必要ないんだよなー」
ということが場面がよくあります。
そこでrequire-devです。
composer.jsonには、require-devと書かれている箇所があります。
require-devに開発環境でしか利用しないパッケージを書いていおくと、開発環境にだけパッケージをインストールすることができるようになります。
まとめ
いかがでしたか?
今回は、composerについて解説しました。
これで、composerを便利に使って開発が進められるようになります。
ぜひ、参考にしてみてくださいね。