PEAR - The PHP Extension and Application Repository

PHP::PEAR

PEAR」、日本ではなじみが薄いのか解説しているページが非常に少ないですね。
超ずぼらプログラマもどきの筆者は、ものを作る上で一番大切にしていることがあります。
それは「実現するためにもっとも簡単・単純な方法を採用する」ことです。

PHPで新規に何かを作るとき、初期段階に作るのはだいたい似かよっているとおもいます。
[コンフィギュレーション],[ユーザー認証],[データベース処理],[HTMLテンプレート],[ロギング],[メール]などなど・・・。
これがあらかじめ用意されているとしたら使わない手はないでしょう!!

それが「PEAR(PHP Extension and Application Repository)」です。
http://pear.php.net/

具体的なものは追々として、まずはインストールから。
コマンド入力して聞かれた質問に答えていく感じです。

ソースコンパイル版
# lynx -source http://go-pear.org/ | php
Windows版(インストール先がC:\phpの場合)
# C:\php\go-pear.bat 

ソースコンパイル版ではconfigureオプションで[--without-pear]と指定しない限り、
make installした段階でいくつかインストールされます。
インストール先はデフォルトで[/usr/local/lib/php]です。
ただ、バージョンごとにインストールされるものが異なります。

一般ユーザー権限やレンタルサーバとかの場合は、
PEAR自体のインストール先を自分のディレクトリにしてからインストールするといいでしょう。

> lynx -source http://go-pear.org/ | php
インストーラーが起動するので以下の内容を変更
[Installation prefix](デフォルトは/usr/local)

PEARの基本パッケージは

[PEAR共通 PEAR] 
[TAR圧縮 Active_Tar] 
[コマンドラインコンソール Console_Getopt] 
[XMLリモートコントロール XML_RPC] 
[データベース DB] 
[ネットワーク処理 Net_Socket, Net_SMTP] 
[メール処理 Mail] 
[XML評価 XML_Parser] 
[単体テスト PHPUnit] 
※ go-pearを使った場合の構成
   ソースコンパイルだけの場合は構成がバージョンによって異なります。

追加パッケージがほしい場合はinstallコマンドを実行します。

// Stableバージョンをインストールする場合(例ではAuth) 
# pear install Auth   
// Alpha, Betaバージョンの場合は-fを付ける(例ではNet_UserAgent_Mobile)
# pear install -f Net_UserAgent_Mobile

install_pathにPEARのインストール先が指定されている必要がありますので、
phpinfo()を確認してください。
使用方法はインクルードするだけ。

// DBクラスを使うときは 
require_once("DB.php"); 

主な内容は「抽象化」にあります。

データベースならOracleをはじめ、SQLServer,PostgreSQLなど種類がたくさんあり、PHPにはそれぞれ関数が用意されています。
しかし、もし、データベース自身が変わることがあった場合、システム変更が大変になります(まぁ普通クラスを作りその部分だけ変えますが。)。
それが設定を少し変えるだけで可能になります。

require_once("DB.php"); 

// Mysqlなら 
$config = "mysql://username:password@host/db_name"; 

// PostgreSQLなら 
// $config = "pgsql://username:password@host/db_name"; 

// Oracleなら 
// $config = "oci8://username:password@host/db_name"; 

$db = DB :: connect( $config, true );    // DB接続 
$db->setFetchMode( DB_FETCHMODE_ASSOC ); // 配列モード(デフォルトはオブジェクト) 

$result = $db->query( $sql );            // クエリ送信 

 while( $rows = $result->fetchRow() ){    // データ取得 
  echo nl2br( print_r( $rows, true ));      // データ表示 
} 

ほかにもログ処理の場合、ログを残す方法としてファイル、データベース、syslog・イベントログ、メールなどありますが、パッケージ[Log]を使うと設定を変えるだけで実現できます。


お名前:


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較