本連載では、Composerを使ったパッケージ管理を紹介します。前回は、ライブラリを作成する方法を通じて、composer.jsonの記述方法を紹介しましたが、今回は、作成したライブラリを社内向けなど限られたプライベート上に公開し利用する方法や、Packagistサイトにも公開する方法を紹介します。
対象読者
PHPで開発を行っている方を対象としています。
必要な環境
この記事では、PHP 5.5を使用し、Windows 8.1、Linux(CentOS6.3)、Mac OSX(10.9)の環境で確認を行っています。ただし、Composer自身はPHP5.3.2以上からサポートしています。
公開するライブラリを作成する
公開するためのライブラリを作成するには、基本的には作成したソースコードをバージョン管理などに登録し、外部より参照可能にすることと基本的には変わりません。しかしながら、インストール対象となるファイルは管理しているファイルがすべて対象です。そのため、プロジェクトを公開するためのリポジトリ管理の際に以下のことに気をつけます。
- vendorフォルダ以下を登録しない
- composer.lockを登録しない
これらは開発時には必要になりますが、登録した状態で公開してしまうと利用者の環境にもコピーされてしまいます。ただし、利用者からはAutoload機能により使えるものではないので、これらは登録する必要はありません。
また、参考までにGitHubを用いてリポジトリを作成する場合には「Add .gitignore」ボタンから「Composer」を選択すると、vendorフォルダなどは最初から除外されるようになっていますので、その設定を利用することをお勧めします。
続いて、composer.jsonを作成します。
{
"name" : "coltware/xtable",
"type" : "library",
"description" : "create table ddl from xml",
"keywords" : ["database" , "xml" ],
"homepage" : "https://github.com/coltware/xtable",
"license" : "MIT",
"authors" : [
{
"name": "coltware",
"homepage": "https://github.com/coltware/xtable",
"role": "Author"
}
],
"require": {
"php" : ">=5.3.0"
},
"autoload" : {
"psr-4" : {
"coltware\\xtable\\" : "src/main"
}
},
"archive" :{
"exclude" :[
"/vendor",
"/composer.lock",
"/*.iml",
"/sample",
"/.*"
]
}
}
リスト1は、本記事用に実際にGitHubに公開したcomposer.jsonです。指定の意味は、前回や前々回などの記述を参考にしてください。また、ここで新たな追加としては"archive"という指定があります。この指定は、実際のリポジトリからアーカイブファイルを作成するときに、そのリポジトリから除外するファイルやフォルダ一覧になります。
実際に開発を行っているフォルダ配下で、以下のようなarchiveコマンドを実行すると指定した除外リストをのぞいたアーカイブが作成できます。
$composer archive --format=zip
筆者は公開するためのリポジトリ(ローカルのSubversion)と公開するためのリポジトリ(Github)を分けているため、これらのリポジトリ間でファイルをコピーする際にこのコマンドを利用して、関係ないファイルを除外するようにしています。
社内利用などの場合には複数のリポジトリを持つことはないと思いますので、リリース手順としてタグやブランチとして利用する場合などに利用できるテクニックです。
この記事は参考になりましたか?
- PHPパッケージ管理ツール「Composer」入門連載記事一覧
-
- Composerのプロジェクトを公開して使う
- Composerを使ってPHPのプロジェクトを管理する
- Composerを使ってPHPのパッケージを簡単インストール
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

