Help us understand the problem. What is going on with this article?

Composer超入門

More than 5 years have passed since last update.

Composerをこれから試そうと思っている人向けの文書です。

Composerって何?

ComposerはPHPプロジェクトの依存ライブラリを根こそぎvendor/以下にダウンロードしてくれるツールです。

詳しくは http://getcomposer.org/ を参照のこと。本家ドキュメントは超充実していますが、本家に和訳が無いせいか日本ではまだまだ普及段階といった印象です。

Composer用語のまとめ

  • composer.json - そのプロジェクト自身の情報と、依存するライブラリ情報などを記述するJSON形式のファイル。これを元にComposerが仕事をする。
  • package - トップディレクトリにcomposer.jsonが含まれているVCSリポジトリまたはzipファイル。
  • Packagist - Composer用のpackage集約サイト。ここに登録されているpackageは短い名前でcomposer.jsonに記述できる。

開発者視点でのComposer+Packagistの良いところ

  • 外部ライブラリ利用の精神的ハードルが下がる
    • Composerがオートローダーを提供してくれるので、個別にrequire文を書いたりする手間が要らなくなる
    • Symfony Componentsなどの巨大ライブラリへの抵抗感が薄れる

開発リーダー視点でのComposer+Packagistの良いところ

  • 利用しているライブラリの出所が明らかになる
  • 利用ライブラリのバージョンをそろえる方法が標準化できる
    • 社内ライブラリを使うときなど、 git submodule を使ってウギャーってならずに済むかも
  • 依存ライブラリ・ツールをプロジェクトごとにインストールできるので、システムグローバルにインストールされたもののバージョンの違いで悩まされる心配が減る
    • 特にPHPUnitをComposer管理するのはオススメです。一部マシンに古いPHPUnitが入っていてテストが通らないという事件は過去のものになります。

ライブラリ作者視点でのComposer+Packagistの良いところ

  • Packagistを使う場合はGitHubかBitBucketの利用がほぼ前提になっており、VCSだけで管理を完結させることができる
    • GitHubのservice hookに対応しており、git pushするだけでPackagistにも変更が反映される
    • 「v1.0.0」のようなtagを打てば、それがpackageのバージョン番号になる
    • 安定版と開発版の管理もbranchやtagの操作で実現できる

packageの管理者がいちいちWebインターフェースを操作する必要がないのは良い仕組みだと感じます。残念ながら、packageの登録時だけはブラウザを開く必要があります。念のため。

その他文書へのリンク

hnw
境界値バグが大好物。自分の日記で書くには小ネタすぎるネタをQiitaに書いています。
https://hnw.hatenablog.com/
klab
モバイルオンラインゲーム、その他スマートフォン関連サービス、及びサーバーインフラ開発・運用
http://www.klab.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした