# プログラミング # 技術的な話題# 技術的な話題-PHP

Pearまとめ

使えそうだなーっていうPearライブラリは即インストールして使っているんだけど、都合によりサーバ移動しようとしたら、どれがどの機能で使っているライブラリか分からなくなっている。

わかんないからちょっと調べて、いまインストールされているライブラリの機能を洗い出して見る。

依存関係でインストールしたライブラリもあるので、二分して説明する。

使えるライブラリ

Auth

ユーザ認証用のライブラリ。ベーシック認証から、フォームを使った認証までいろんな認証を使える。使うまでの設定がちょっと手間だが使いこなせると楽チン。

Cache_Lite

キャッシュを作成して、ページの表示を高速化してくれる。ちょっと使ってみたかったけど、自前のサイトで高速化の必要が無かったために放置。

  • バイナリファイルのキャッシング。
  • キャッシュデータの階層保存。
  • ガーベージコレクション。
  • ファイルのロック。

こんな機能があるのか。。ちょっと弄って見たくなった。

File_Archive

これはすごい便利。ファイル圧縮解凍関連をサポートしてるライブラリ。かなり多数の圧縮形式に対応している。ディレクトリをZipで圧縮してダウンロードとか、ファイルをメールに添付して送信などの機能を備える。

公式ホームページは英語だけど、Examplesなどにサンプルが多数あるので、そこを一番参照してればなんとかなる。

HTML_QuickForm

フォーム処理をサポートしてくれるクラス。Pearの中では一番使っているかもしれない。

フォームを生成し、入力値を検証して、エラーが無ければ処理を実行というような流れでスクリプトを作れる。記述にクセがあるが使いこなせたら全部これで作りたくなる。

QuickFormをオーバライドしてフォームの処理をクラスにしたら、それ以外の処理とは完全に分離できる。

あと、レンダリングエンジンにSmartyが使えるのでそちらを推奨。デフォルトのレンダリングではデザインをいじる余地が無いので。。

HTML_QuickForm_Controller

QuickFormの強化版。複数ページに渡るウィザードページの生成をサポート。イベントハンドラを使ったMVCな処理を作成できる。

QuickForm_Controllerを使えば、Ethna,symfonyみたいなフレームワークを使わなくてもある程度の規模のシステムまではサポートできると思う。

Pager

ページ処理をサポートしてくれるライブラリ。何気に高機能。

自前でページ処理を書くよりはこのライブラリに任せていた方が確実

Smartyも使えば、デザインも自由自在。

Spreadsheet_Excel_Writer

PHP上でデータをエクセルファイルにして、ダウンロードさせることができます。エクセルの細かいフォーマットまでいじれるので簡単な帳票ぐらいは出力できます。

文字コードsjisということにさえ気をつければ、さっくりとエクセルファイルが出力できます。

こまかい部分まで指定できるので本家マニュアルを読みながら作成するといいと思います。

使えないライブラリ、依存関係でインストールしたライブラリ

Archive_Tar

tarとかtar.gzを使うライブラリ。Pearをインストールする際に同時にインストールされる。

Console_Getopt

PHPコマンドライン上で使うとき、引数を実行できるようにしてくれる。あまり使わない。

DB

DNSを使ったDB接続のサポート。mysql_connectで全部済ませているから使ったことが無い。MDBに取って代わられた過去の産物らしい。

HTML_AJAX

PHPAJAXレンダリングをサポートしてくれるライブラリ。

はっきり言ってあんまり使えなかった。自分のスキルが足りないせいかもしれないけど。。

AJAX関連はSmarty+prototype.jsで全部コーディングしてる。自分はそっちが楽。

HTML_Common

HTML系ライブラリのベースクラス。他のライブラリを入れるときの依存でインストール。

使わない。独自でライブラリを開発している人以外は触らないと思う。

バグフィックスバージョンでHTML_Common2が出ているらしいのでそちらに移行するべきかな?

MIME_Type

MIMEを扱うためのライブラリ。他ライブラリのの依存関係で導入。使わない。

添付メールのサポート。確かFile_Archiveの依存関係で導入した。

Mail

メールを送信するライブラリ。PHP独自の組み込み関数でメール送信はサポートされているので使わない。File_Archiveの依存関係で導入した。

Mail_Mime

MIMEの変換を管理。これも他ライブラリの依存関係。File_Archiveの依存関係で導入した。

添付メールで画像とか使う人は必要かも。

OLE

OLEを使うために必要。Spreadsheet_Excel_Writerの依存関係。単独では使わない。

使いたいPearライブラリ

DB_Object

DB系ライブラリでは最強かも。iniファイルにSQL文を指定しておくことで、いろいろと用意された関数を使ってデータを取り出せる。設定がやや面倒。

PHPUnit

JavaJUnitのようなユニットテストを、PHPで実現。XPプログラミングやりたい人には必須かも。

まぁ結局最後は

みたいなライブラリの詰め合わせセットを使うのも手かもしれない。

自分は必要ないものを入れなくないので遠慮するけど。