SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

 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であらかじめ指定できるコーディング規約を理解し、採用する方式を決定する必要があります。

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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
プロジェクトの基本プロパティ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
PHPパッケージ管理ツール「Composer」入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7887 2014/07/25 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング