composer:repositoriesでPEARパッケージをインストール

More than 1 year has passed since last update.

※2017/02/17追記

以下の記事は既に実行できない状態です。

(思い出として残しておきますが)

いまではcomposer.jsonに指定のpearライブラリを書くだけでいけます。


composer.json

{

"require": {
"pear/pear": "@dev",
"pear/db": "@dev",
"pear/log": "@dev"
}
}

対象のパッケージについては以下を参照ください。

https://packagist.org/search/?q=pear


PEARについてそれはそれは大量の記事を書いてきたのは今ではいい思い出。

関連記事:

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪

------------------- ↓ 余談はここから ↓-------------------

PHPのライブラリが全部Packagistにあるとは思ってはいけない。

PHPのパッケージ管理はPEARからcomposerに移ったとはいえ、

全部が全部移ったわけではなく、

すでに開発者が放置したものも数多くある。

ただ、それを使うがためだけにPEARをインストールするのも大掛かりすぎるし、

PEAR2ことpyrusはあまりに使い物にならない。

じゃあ、composerPEARを使う方法を考えるかという流れ。

特に難しいことはない。

------------------- ↑ 余談はここまで ↑-------------------

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪

------------------- ↓ 本題はここから ↓-------------------


インストール

PEAR::Logをインストールすることをサンプルにcomposer.jsonを記述する

composer.jsonのrepositoriesとrequireは以下のようになる


composer.json

・・・

"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"require": {
"pear-pear.php.net/PEAR": "*@stable",
"pear-pear.php.net/Log": "*@stable"
},
・・・

この状態で以下を実行

$ php composer.phar update



サンプル実行

では実際に使ってみよう。

composerを使うときは冒頭にautoloadをrequireする。

個別にrequire("Log")とかは不要で、

使うとき自動で該当するライブラリを探してrequireしてくれる。

<?php

require_once("vendor/autoload.php");

$logger = Log::factory('console', '', 'TEST');
$logger->log('Logging to the console.');

ね!簡単でしょ!

------------------- ↑ 本題はここまで ↑-------------------

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪

------------------- ↓ 補足はここから ↓-------------------

個人的にはcomposerは「composer.jsonを編集」という工程がわかりにくい原因だと思っている。

なのですべてコマンドラインでやった場合どうなるかを見てみよう。

例のごとくインストール作業から。

pearというディレクトリを作りそこにインストールしてみる。

composerコマンドを打つたびにcomposer.jsonが変化していくので、

わからなければ確認しながらやるといいだろう。

$ mkdir pear

$ cd pear
$ php -r "readfile('https://getcomposer.org/installer');" | php # composer.pharのダウンロード
$ php composer.phar init -n -s stable # composer.jsonの生成
$ php composer.phar config bin-dir "bin/" # binディレクトリの指定
$ php composer.phar config repositories.0 pear http://pear.php.net # repositoriesにpearを登録
$ php composer.phar require "pear-pear.php.net/PEAR=*" # PEARのインストール
$ php composer.phar require "pear-pear.php.net/Log=*" # PEAR::Logの追加

ちなみに以下のようにリポジトリの配列名を指定すればリポジトリを追加できる

$ php composer.phar config repositories.1 pear http://pear2.php.net   # repositoriesにpear2を登録

もうpyrusはいらない。