3
2

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.

[PHP]Composer超概要(初めの一歩)

Last updated at Posted at 2020-12-15

皆さんこんにちは。

PHP Advent Calendar 2020(Qiita)16日目の記事を書かせていただきます。

今年から仕事でPHPを書くようになり(それまではずっとJavaエンジニア)PHPを書いているのですが、ずっとレガシーなPHPのシステムを触っていました。が、最近ふとLaravelで開発するようになり、Laravelを使う中で出てくるのが今回扱う「Composer」でした。正直、PHPで開発するならComposerないとしんどいなぁ・・というのを実感したので、改めてComposerはどういうものなのか、何が便利なのかを嚙み砕いて書いていければと思います。

What's Composer?

  • 「依存関係管理ツール」/ プロジェクト単位で管理できる

Composerとは「依存関係管理ツール」と呼ばれるソフトウェアで、PHPのプログラムで使用するパッケージの依存関係を管理する為に使用される。プロジェクト単位にパッケージを>管理できる。【引用】Composerの教科書 - 増井 敏克著

プロジェクト単位で管理できるので、複数プロジェクトで異なるバージョンのライブラリを導入したい場合でも他プロジェクトに影響を与えない かつ デフォルトでは「vendor」というディレクトリにインストールしたライブラリが一括で格納されるので、管理もしやすくわかりやすいです。

  • パッケージの依存関係を管理してくれる
    複雑なパッケージ管理もComposerが担ってくれます。導入したいパッケージに必要なライブラリ等もまとめてインストールしてくれるので、パッケージごとの依存関係を意識せずとも必要なパッケージを導入できます。

  • composer.jsonで同じバージョンのライブラリをすぐに共有できる
    複数の開発者で開発をする際には、composer.json = 「Composerを管理しているファイル」を共有→ composer.jsonがあるディレクトリ上でcomposer installとするだけで、依存しているライブラリを持ってきてくれます。このファイルを共有するだけでバージョンを同じに揃えられる・・・とても便利ですね。

  • オートローディング機能
    Composerでは、オートローディング(スクリプト冒頭にrequireやincludeを個別に書かなくても、使用したいファイルを自動的に読み込める機能)が使用できます。※オートローディングについてはまだ勉強中なので、また別の記事で詳しく書きます。

Composerの導入

Composerのインストールについては、公式のWebサイトに詳しく載っているので割愛します。インストールしたいOSにPHPがインストールされていれば、あとは手順に沿ってインストールするのみです。

公式リンク: https://getcomposer.org/

LaravelもComposer経由でインストールされる!?

Laravelで開発する際には、ComposerでLaravelをインストールする必要があります。

まとめ

今回の記事では、Composerについての概要をざっくりとまとめました。まだまだ学習中で、理解できていないことも多いので、しっかりと知識を身に着けたうえで再度ComposerについてもQiitaにまとめていこうと思います。

明日は @thgm3116 さんです!

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?