Composerのススメ(2)

By | 2013年8月15日

Composerを使うと「PEARでいいじゃん」という声が寄せられます。

そんな人には「ComposerでPEARを管理できるよ」と優しく教えてあげたい、yukiです。

前回は標準的な依存ライブラリの指定方法を示しました。
今回はPackagist以外にあるライブラリの指定方法を書きたいと思います。

Packagist以外のライブラリを指定する場合はrepositoriesの設定を使います。

PEAR

コードは古くなりましたが、依然として使う機会が多いライブラリリポジトリです。
Mailをインストールする場合の指定方法は次のとおりです。

Packagistの指定ではパッケージの中に自分の依存関係を示すjsonファイルがあったので、依存関係を自動解決してくれますが、PEARの場合は自分で指定してあげる必要があります。

requireで指定するパッケージのvendor名は”pear-“というプレフィックスを付けて、リポジトリのフルネームかエイリアス名を指定できます。

 

バージョン管理システム

Composerではgit, svn, hgの3つのVCSに対応しています。
ただし、リポジトリ側にcomposer.jsonが設置されている必要があります。

自社の非公開ライブラリを作ったり、githubなどにプライベートリポジトリを作って利用したり、公開されているライブラリのバグを直すためにforkしたものを使うなどの用途で使えます。

書き方は次のとおりです。

requireで指定されている”acme/acme”は、ライブラリ内のcomposer.jsonで定義されている名前になります。

typeではvcsを指定するとVCSの種類を自動判別しますが、git, svn, hgのどれかを指定することで明示的に指定できます。

Subversionを利用する場合は追加でtrunk/branches/tagsのディレクトリを指定することができます。
それぞれのデフォルトは”trunk”, “branches”, “tags”です。

branchesやtagsが存在しない場合はfalseを指定します。

 

 

Composerに対応していないライブラリ

例えばSmartyだったり、zipなどのアーカイブでのみ提供されているものだったり、Composerに対応されていないものをComposerで管理するときの書き方です。

書き方は公式ドキュメントにあるSmartyのサンプルをそのまま示します。

distsourceは最低でもどちらか片方だけ定義されていれば大丈夫です。

 

ここまでくれば既存のプロジェクトでも依存ライブラリをComposerに移行できるのではないでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です