#setlinebreak(on) * PEAR - The PHP Extension and Application Repository [#qb249ac2] こちらへ移動→[[http://dozo.matrix.jp/pear/]] こちらへ移動中→[[dozo dokuwiki:http://dozo.matrix.jp/pear/]] #htmlinsert(googleAdsense.html) #ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR) 「[[PEAR:http://pear.php.net/]]」、日本ではなじみが薄いのか解説しているページが非常に少ないですね。 超ずぼらプログラマもどきの筆者は、ものを作る上で一番大切にしていることがあります。 それは「''実現するためにもっとも簡単・単純な方法を採用する''」ことです。 PHPで新規に何かを作るとき、初期段階に作るのはだいたい似かよっているとおもいます。 [コンフィギュレーション],[ユーザー認証],[データベース処理],[HTMLテンプレート],[ロギング],[メール]などなど・・・。 これがあらかじめ用意されているとしたら使わない手はないでしょう!! それが「[[PEAR(PHP Extension and Application Repository):http://pear.php.net/]]」です。 http://pear.php.net/ 具体的なものは追々として、まずはインストールから。 コマンド入力して聞かれた質問に答えていく感じです。 ソースコンパイル版 # lynx -source http://go-pear.org/ | php Windows版(インストール先がC:\phpの場合) # C:\php\go-pear.bat ソースコンパイル版ではconfigureオプションで[--without-pear]と指定しない限り、 make installした段階でいくつかインストールされます。 デフォルトで入っているものはgo-pearで入手したものと異なっているようです。 インストール先はデフォルトで[/usr/local/lib/php]です。 ただ、バージョンごとにインストールされるものが異なります。 一般ユーザー権限やレンタルサーバとかの場合は、 PEAR自体のインストール先を自分のディレクトリにしてからインストールするといいでしょう。 // phpを使う場合 # php -r "include 'http://pear.php.net/go-pear';" インストーラーが起動するので以下の内容を変更 [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 // 依存関係のモジュールをすべてインストールする場合 # pear install -a Log 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]を使うと設定を変えるだけで実現できます。 PHP5.xのWindows版でgo-pear.batを使ってみると、 インストールされるパッケージは Archive_Tar Console_Getopt PEAR の三つだけになるようです。 (PHP5.1.2で確認) さらに、pear.batというファイル名ではなく、 pearold.batとpeardev.batという二つのファイルが出来るようです。 pearold.batの名前をpear.batに変えて置く必要があります。 PEAR::DBはデフォルトで入っていないので、 コマンドプロンプトから pear install DB と打ってください。 -DB.phpをPEARにインストールするときはどうするの? -- [[motokun]] &new{2005-06-21 17:36:19 (火)}; -PHPインストールすれば最初から入ってますよ。あとはinclude_pathだけ通しておけばOK -- [[dozo]] &new{2005-06-22 00:46:07 (水)}; -追記:PHP4.3.11からPEAR::DBが標準で入っていないですね。。。ChangingLog?にはなにもかいてないのに。。。 -- [[dozo]] &new{2005-07-01 08:16:57 (金)}; -Pearのインストール先は、どのようなコマンドで知ることができますか? -- [[hoge]] &new{2005-07-04 14:18:54 (月)}; -[ pear config-show ]です。一覧上の[php_dir]がPEARのインストール先。 -- [[dozo]] &new{2005-07-04 17:55:49 (月)}; -Pearga -- [[hoge]] &new{2005-07-04 23:27:59 (月)}; -Pearが入っていないのだろうか?オプションで [--without-pear]はつけていないのだが。phpバージョン5.0.4をソースからコンパイル、OSはRedhatの2.4.20-8です。 -- [[hoge]] &new{2005-07-04 23:31:55 (月)}; -php5.1b3をソースコンパイルしましたけど、普通に入ってましたよ。あとはphp.iniのinclude_pathにデフォルトで/usr/local/lib/phpを追加するだけでOKすね。 -- [[dozo]] &new{2005-07-17 21:25:57 (日)}; -「php-5.1.1-Win32.zip」を解凍し、コマンドプロンプトから「go-pear.bat」を実行しました。phpを解凍したフォルダ配下のPEARフォルダにファイルが展開されたのですが、DB.phpはありませんでした。展開方法が間違ってるのでしょうか、ご教授お願いします。 -- [[bagbeat]] &new{2005-12-06 17:00:36 (火)}; -[ -- [[doe]] &new{2005-12-07 01:18:48 (水)}; -「PHP4.3.11からPEAR::DBが標準で入っていないですね」って上に書いてあるでしょが -- [[doe]] &new{2005-12-07 01:19:30 (水)}; -[C:\php\pear install DB]のような感じで、改めてPEAR::DBをインストールしてみた場合どのようになりますか? -- [[dozo]] &new{2005-12-07 14:26:00 (水)}; -でも、最近pear.php.netサーバが落ちててダウンロードに失敗することも多いですね。 -- [[dozo]] &new{2005-12-07 14:27:18 (水)}; -上記のbatファイル展開後、コマンドプロンプトから「pear install DB」も実行しました。結果は「Cannot initialize 'DB', invalid or missing package file Package "DB" is not valid」となり失敗でした。「http://pear.php.net/packages.php」からDBパッケージをダウンロードして、直接「C:\php\pear」配下に置くことで解決しました。 -- [[bugbeat]] &new{2005-12-08 17:32:47 (木)}; -pear install DB -- &new{2006-04-28 13:03:06 (金)}; -PEARを php_dirで指定されたディレクトリ以外に配置して、呼び側のphpプログラム内で、パスも含めて呼び出すことは出来ますか?(php_dirの設定は変更せずに) -- [[初心者です。]] &new{2006-05-02 14:55:48 (火)}; -PEARを php_dirで指定されたディレクトリ以外に配置して、呼び側のphpプログラム内で、パスも含めて呼び出すことは出来ますか?(php_dirの設定は変更せずに) -- [[初心者です。]] &new{2006-05-02 15:00:30 (火)}; -PEARは基本的に単なるPHPプログラムなので、適当なディレクトリにダウンロードしてinclude_pathを通しておけば使えますよ。 -- [[dozo]] &new{2006-05-04 11:31:08 (木)}; -Pear DBから Mysqlを操作する場合, php の configureで '--with-mysql' 必要なのですか? -- [[GuuZuu]] &new{2006-09-19 11:17:57 (火)}; -必要です。PEAR::DBではContainerを経由してDB_MySQLクラスを呼び出し、そのクラスの中でmysql関数群を使用しています。 -- [[dozo]] &new{2006-09-19 16:50:46 (火)};