1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

composer様という依存性管理パッケージツールのありがたみ

Last updated at Posted at 2020-11-12

はじめに

最近、チームで開発することになりPHPのフレームワークのLaravelを使用しているのですが、その時に使用するcomposerが改めて便利だなと思った話。

  1. composerとは
  2. composerを使用してみよう
  3. まとめ

composerとは

composerは依存管理パッケージツールと呼ばれています。どういう意味かというと

Aというライブラリを使用しようとすると、他にBが必要でBを使用するとCが必要でと、どんどん必要なものが増えていきます。

そんな、面倒なことを一気に解決してくれるのがcomposerです。

composerの利点

composer.lockがあるのでチームでの開発が楽になる。composer.lockにはcomposer.jsonに書かれたライブラリを取得するために、どのようなファイルを落としてきたかだまとめられているファイルです。なのでチームで開発する時に、composer installというコマンドを入力すると他のチームと同じ開発の環境にしてくれます。

オートロード機能がある。例えば、ライブラリを使用したいとしてこのファイルとこのファイルを読み込みといったことをしなくてよく。/vendor/autoload.phpを読み込んであげるとそんなめんどくさいことをしなくよくなります。

このように利点がいくつかあります。

composerを使用してみよう

それでは、実際に使用してみましょう。始める方法は沢山あるのですがそのうちの一つを今回はやります。
(composerはあらかじめ自分の環境で使用できる状態にして下さい)

最初に、自分が作業するフォルダに移動しcomposer.jsonというファイルを作成します。

{
   "require": {
      "phpmailer/phpmailer": "*"
   }
}

そして、上記の内容を記述して下さい。

composer.json

まず、composer.jsonには自分が取得するライブラリの名前をrequireに記述します。ベンダー名/プロジェクト名:バージョンになります。バージョンには今回はワイルドカードを設定します。
次にコマンドでcomposer installを入力します。するとフォルダ内にvendorとcomposer.lockが作成されました。

composer install

composer installは、composer.jsonに記載されている内容もしくはcomposer.lockに記載されている内容に従って、パッケージをインストールします。

composer.lock

composer.lockはcomposer.jsonにあるライブラリを取得するために、どのようなファイルを落としてきたかが書かれています。
vendorにはインストールしたライブライが入っています。

後は、自分が作業しているファイルにライブライを読み込んであげることで使用することが出来ます。

<?php

require '/vendor/autoload.php';

# 自分が使用したいライブライを使用

?>

まとめ

このように、composerがあるおかげてチームで開発するのも楽になります。また、依存関係を気にせずに自分の環境にライブラリを落とすことができます。

参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?