XAMPPで標準についてるPEARを試すために、とりあえずDB.phpを使ってみようと思い、
「require_once("DB.php");」としてみたところ、下記のようなエラーがでました。
Warning: require_once(PEAR.php): failed to open stream: No such file or directory in D:\xampp\htdocs\cake\Test\DB.php on line 30
これは具体的には何をどのように改善したら、うまくincludeできるのでしょうか?
ちなみにphpinfo()で確認したところ、include_pathは「.;D:\xampp\php\PEAR」となっていました。
また、PEARはライブラリーとして古く使うべきではないと
どこかで聞いたことがあるのですが、それは本当なのでしょうか?
もしかわりになるライブラリーがありましたらあわせておしえてください。
環境は最新のVista Home Premium、最新のXamppのPHP5、プラウザはIE,Firefoxです。
以上、よろしくお願いします。
include_pathがphpinfo()では「.;D:\xampp\php\PEAR」となっていたものが
Testでは「.;D:\xampp\htdocs\cake\Test」とPEARへのパスが消えてしまっていることが原因です。
その箇所が特定できるのなら
$path = "D:\xampp\htdocs\cake\Test"; set_include_path(get_include_path().PATH_SEPARATOR.$path);
のように既存のinclude_pathに追加するようにします。(現在は上書きしているのでPEARへのパスが消えた)
include_pathを設定している箇所が特定できないならrequire_once("DB.php");の前に
$path = 'D:\xampp\php\PEAR'; set_include_path(get_include_path().PATH_SEPARATOR.$path); require_once("DB.php");
として「.;D:\xampp\htdocs\cake\Test」の後ろにPEARへのパスを追加します。
DB.phpは既に開発は止まっておりPHP4が主だったように感じています。PHP4でもクラスは使えますがPHP5とは少し違います。
またPHP4自体も開発が終了します。このような事からDB.phpは使わないほうがいいように思います。
PDOを検討してみてはどうでしょう。
データベースに特定したコードを書くわけではないのでデータベースを変更する場合に修正が少なくなることが期待できます。
peardev install DB
は実行しましたか? ご確認ください。
また、PEARはライブラリーとして古く使うべきではないと
どこかで聞いたことがあるのですが、それは本当なのでしょうか?
使うべきでないかどうかは分かりませんが、PHP5ではPEAR::MDB2 を使うことが勧められています。
ご回答ありがとうございます。
この処理はしてませんでした。
さっそくコマンドプロンプトを開き、peardev.batのあったD:\xampp\phpに移動し、
peardev install DBを実行したところ、
pear/DB is already installed and is the same as the released version 1.7.13install failed
というメッセージが出ました。質問のエラーは出たままです。
どこが問題なのでしょうか?
include_pathがphpinfo()では「.;D:\xampp\php\PEAR」となっていたものが
Testでは「.;D:\xampp\htdocs\cake\Test」とPEARへのパスが消えてしまっていることが原因です。
その箇所が特定できるのなら
$path = "D:\xampp\htdocs\cake\Test"; set_include_path(get_include_path().PATH_SEPARATOR.$path);
のように既存のinclude_pathに追加するようにします。(現在は上書きしているのでPEARへのパスが消えた)
include_pathを設定している箇所が特定できないならrequire_once("DB.php");の前に
$path = 'D:\xampp\php\PEAR'; set_include_path(get_include_path().PATH_SEPARATOR.$path); require_once("DB.php");
として「.;D:\xampp\htdocs\cake\Test」の後ろにPEARへのパスを追加します。
DB.phpは既に開発は止まっておりPHP4が主だったように感じています。PHP4でもクラスは使えますがPHP5とは少し違います。
またPHP4自体も開発が終了します。このような事からDB.phpは使わないほうがいいように思います。
PDOを検討してみてはどうでしょう。
データベースに特定したコードを書くわけではないのでデータベースを変更する場合に修正が少なくなることが期待できます。
どうやらうまくいったようです。
また、PDOも教えていただいてありがとうございます。
さっそくこちらも勉強してみることにします。
最新のXamppではじめからついてるいるPEARが時代遅れというのは不思議な感じですね。
コメントにひきつづき丁寧なご回答ありがとうございました。
ところで、なんで『Testでは「.;D:\xampp\htdocs\cake\Test」とPEARへのパスが消えてしまっている』んでしょう?
環境PATHの設定の仕方が悪かったのか、Cake PHPがいたずらしてるのか、僕が思い当たるのはそんなところです。
どなたか時間のある時にでもコメントいただければ大変勉強になります。よろしくお願いします。
どうやらうまくいったようです。
また、PDOも教えていただいてありがとうございます。
さっそくこちらも勉強してみることにします。
最新のXamppではじめからついてるいるPEARが時代遅れというのは不思議な感じですね。
コメントにひきつづき丁寧なご回答ありがとうございました。
ところで、なんで『Testでは「.;D:\xampp\htdocs\cake\Test」とPEARへのパスが消えてしまっている』んでしょう?
環境PATHの設定の仕方が悪かったのか、Cake PHPがいたずらしてるのか、僕が思い当たるのはそんなところです。
どなたか時間のある時にでもコメントいただければ大変勉強になります。よろしくお願いします。