Help us understand the problem. What is going on with this article?

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はいらない。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away