Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Composerを使ってPHPのプロジェクトを管理する

PHPパッケージ管理ツール「Composer」入門 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/07/25 14:00

 本連載では、Composerを使ったパッケージ管理を紹介します。前回は、Composer自身の利用方法や、管理されているライブラリなどの利用方法を紹介しましたが、今回は、ライブラリを作成する方法を通じて、composer.jsonの記述方法を紹介します。Composerを想定したライブラリを作成することで、オートローダー機能の提供や依存解決をComposerの機能を利用することができるために、ライブラリが利用しやすい形式で提供することが可能になります。

目次

対象読者

 PHPで開発を行っている方を対象としています。

必要な環境

 この記事では、PHP 5.5を使用し、Windows 8.1、Linux(Cent OS 6.3)、Mac OSX(10.9)の環境で確認を行っています。ただし、Composer自身はPHP5.3.2以上からサポートしています。

composer.jsonの概要

 前回も紹介しましたが、Composerで編集するファイルはcomposer.jsonというファイルのみです。このファイルの内容における構造は図1のようになっており大きく分けて5つほどありますが、ライブラリの作成では以下の3つのプロパティを設定する必要があります。

図1 composer.jsonの構造
図1 composer.jsonの構造
  • プロジェクトの基本プロパティ
  • 依存ライブラリ情報
  • Autoloadの設定

 「プロジェクトの基本プロパティ」は、プロジェクトを示す基本情報です。

図2 Packagistサイトでの表示例
図2 Packagistサイトでの表示例

 ここで設定した情報は、プロジェクト(ライブラリ)として公開したときには利用者が概要を知るために利用され、デフォルトでComposerのパッケージリポジトリとして使われているPackagistのサイトでは設定した内容が図2のように表示されます。

 公開しない場合には必須ではありませんが、プライベートなリポジトリで管理する場合にもライブラリの識別としてベンダー名やプロジェクト名は必要になるので設定しておくべきでしょう。「依存ライブラリ」は外部のライブラリを使う上で必要な設定です。利用するための概要については前回を参照してください。

 また、バージョンの記述方法など実際の利用時には気を付けるポイントがあり、基本的なルールを覚えておく必要があります。そして、ライブラリを作成する上では「Autoloadの設定」が最も大切です。ここでの指定は、プログラムを作成する上でのフォルダ構造やファイル名などコーディング規約を決定することでもあります。プログラムを作成してから指定すると後々、非常に面倒になるのでComposerであらかじめ指定できるコーディング規約を理解し、採用する方式を決定する必要があります。

 その他、「リポジトリ情報」は指定したライブラリがデフォルトのリポジトリ外にある場合や、自分で公開するライブラリを独自のリポジトリに置く場合に必要になります。また、「設定など、その他オプション」は利用方法で細かい調整が必要になる時に必要になる設定なので、次回説明します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:PHPパッケージ管理ツール「Composer」入門
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5