【PHP】PEAR Part2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/08/01(月) 21:27:12ID:pG+mahP3■PEAR
http://pear.php.net/
■前スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0268nobodyさん
2006/01/16(月) 21:43:18ID:???0270梨元
2006/01/17(火) 08:37:22ID:???0271nobodyさん
2006/01/17(火) 12:36:46ID:???0272nobodyさん
2006/01/24(火) 23:42:32ID:6JXx7sTKリモートデスクトップで接続し、DOS窓からphpのインストフォルダに移動して、
>go-pear.bat
と入力しても何も応答がありません。
ちなみにWinXPのパソコンでは、Welcomeが出てきます。
なぜでしょうか?
0273nobodyさん
2006/01/25(水) 00:43:07ID:???0274nobodyさん
2006/01/25(水) 00:50:13ID:???0275nobodyさん
2006/01/25(水) 20:15:19ID:???PHPのやつは古いんで、かと言って最新のPerlのやつを移植するスキルもないので、
ブリッジ作ってPerlのやつ使ってます
0276nobodyさん
2006/01/26(木) 00:00:05ID:???みたいにページ内リンクをつけるのって出来ますか?
0277nobodyさん
2006/01/26(木) 09:51:22ID:???携帯用のフォーム作りたいんだけど
ttp://wiki.poyo.jp/read/Writing/marugoto_php/HTML_QuickForm_Controller#content_1_5
に「HTML_QuickForm_ControllerはHTTPヘッダのLocationを使用します。
ですので携帯電話用のフォーム処理には向きません」との記述。
実際作ってみたんですがやっぱり動かない。
どこの処理でLocation使ってるんですか?
出来上がったソースみても書いてないし。
↓参考にしたソース
ttp://blog.snoritake.com/2005/12/html_quickform_controllersmart_1.html
0278nobodyさん
2006/01/27(金) 09:19:29ID:???0279nobodyさん
2006/01/27(金) 17:30:12ID:zienXgmOPHP5でエラーが出たので、ちょっと見たのですが、
コンストラクタの$options引数が、コンテナによって、
配列だったり、文字列だったりするのだけど、
どちらの場合も、ごちゃまぜに処理してしまっていて、
これがエラーの原因になっています。
よく使いそうな役割のクラスだけに、
もうちょっとしっかりしたコードにしてほしいもんだ。
0281nobodyさん
2006/02/01(水) 12:15:51ID:FRDzC7Md次レスのようなシンプルなソースを作りましたが、
addUserでは必ずTrueが、getAuthでは必ずFalseが返ってきてしまいます。
addUserはTrueでも実際には動作してないです。エラーも出ません。
getAuthはgetStatusに変えたら正しく動作しました。
同様な現象になったことがある方いませんか?
このままですと、getAuthやaddUserだけでなく他にも挙動がおかしいもの
がでてきそうな気がします。正しく動作させる方法を教えてください。
環境:
PHPは4.3.10ですが、デフォルトで入っているPEARの挙動が
おかしかったので http://pear.php.net/packages.php ここから
AuthとDB関連のクラスは入れなおしてます。
register_globals は Off です。
0282nobodyさん
2006/02/01(水) 12:16:27ID:FRDzC7Md<?php
require_once "Auth/Auth.php";
$dsn = "mysql://user:password@localhost/database";
$authset = array(
"dsn" => $dsn,
"table" => "auth",
"usernamecol" => "username",
"passwordcol" => "password",
"cryptType" => "none"
);
$a = new Auth("DB", $authset);
// ユーザーの追加---必ずTrueが返ってくるが登録されてない。
if($a->addUser('user','pass')) {
echo "ユーザーを追加しました。";
}
$a->start();
// 認証チェック---必ずFalseが返ってくる。
if ($a->getAuth()) {
echo "ようこそ!" . $a->username . "さん<br>";
}
?>
0283nobodyさん
2006/02/01(水) 18:05:00ID:???0284281-282
2006/02/01(水) 20:51:33ID:???気のせいでした。。。_| ̄|○ il||li
接続設定が違っていた模様・・・
スレ汚しスマソ(´・ω・`)ショボーン
0285192.168.0.774
2006/02/02(木) 10:25:44ID:rSyssRqDPEARじゃなくともSimpleXML使えばお腹いっぱい
0288nobodyさん
2006/02/02(木) 14:23:19ID:???ttp://www.ister.org/code/simplexml44/index.xhtml
にPHP4用のSimpleXMLらしきものがあるので、試してみては?
0290nobodyさん
2006/02/09(木) 12:10:45ID:???なぜか全く反応しません。
requiredにも無反応。raiseErrorにもひっかからない。
hiddenの値をvalidateするにはどうすればいいですか?
0293nobodyさん
2006/02/10(金) 14:03:44ID:???マジで呪文を唱えてみました
効果がありませんでした。
とりあえずソースにデバッグコードを埋め込んだりして、動きを追っています。
mojavi + HTML_QuickForm + smarty という構成なのでそのどこかにバグがあるのでは
と思っています。
今このあたりを調べ中…(3日もコーディングが進まない…)
$form->accept($QFrenderer);
0294nobodyさん
2006/02/10(金) 19:31:43ID:???>mojavi
だったら、根本的な解決にならんけど、
Acrionのinitialize()あたりでチェックする。
0296nobodyさん
2006/02/11(土) 15:27:57ID:???仕様じゃないかと思われるから要望だそうかと思うけど
$form->addElement('hidden', 'test', '');
$form->addRule('test', 'test is required', 'required', '');
0297nobodyさん
2006/02/13(月) 22:58:45ID:pnT1I5vqhttp://pear.php.net/package/MDB2_Driver_sqlite/
0298nobodyさん
2006/02/14(火) 16:45:17ID:???0299nobodyさん
2006/02/14(火) 20:28:20ID:???0300nobodyさん
2006/02/14(火) 22:59:00ID:nEcRuD6aDB の使えるホスティングが増えるんじゃないかなーと
期待してる
0301nobodyさん
2006/02/15(水) 07:32:02ID:???まだ日本語ドキュメントがあんまりないし
0302nobodyさん
2006/02/15(水) 08:08:14ID:???DB周りの設定のようなロジックに関係無い部分に気を使う必要がないから、すぐに作り始められる。
3への移行時期あたりに本家のドキュメントを手当たり次第に訳してどっかにうpした記憶があるんだが、URLわかんね。
地道に検索すりゃ見つかるんじゃないかな。
つか、他のDBと比べた時に多少制限があるくらいで、そこさえ押さえておけばあんまり意識する必要がなかったような。
0303nobodyさん
2006/02/15(水) 09:19:32ID:???http://www.debianhelp.co.uk/sqliteweb.htm
0304nobodyさん
2006/02/16(木) 08:01:48ID:???0305nobodyさん
2006/02/18(土) 02:28:12ID:Fc1AYhHKhttp://pear.php.net/manual/ja/package.authentication.auth.intro.php
の一番上にある最もシンプルなスクリプト実行してみたが、認証できず5時間くらい格闘中。
MAMPではmysqlのポートが8889になってしまうので、$dsn = "mysql://ネーム:パスワード@tcp(localhost:8889)/データベース名"
としてみたが、いっこうに動かず。Authのバグかなこれ??
しかもphp5だとこのスクリプトは動かず、外人どももご立腹な様子。
http://pear.php.net/bugs/bug.php?id=4371
0306nobodyさん
2006/02/20(月) 17:00:30ID:???0307nobodyさん
2006/02/20(月) 17:31:46ID:vRXDRBjP気のせいだよ
0308nobodyさん
2006/02/20(月) 22:23:00ID:???0309306
2006/02/24(金) 11:11:37ID:???意外と簡単だった
0310nobodyさん
2006/02/24(金) 17:52:14ID:???継承したクラスを作らなくても済んだのに。
0311306
2006/02/27(月) 16:21:13ID:???出来ました。
ありがとうございました。
0312nobodyさん
2006/03/06(月) 13:38:45ID:???minYearみたいなオプションはないのでしょうか?
もしくは、それに変わるものみたいな・
0313nobodyさん
2006/03/08(水) 17:54:45ID:???0314nobodyさん
2006/03/08(水) 17:55:18ID:???0315nobodyさん
2006/03/08(水) 22:51:49ID:???デフォでは何も出ない。
自分で拡張するべし。
0317nobodyさん
2006/03/08(水) 23:06:37ID:???0318nobodyさん
2006/03/09(木) 03:59:13ID:???PEARにはないけど、PECLにひとつあるみたいね。
html_parse
http://pecl.php.net/package/html_parse
特定のタグをの使用を制限したいとかの理由なら
tidy
http://pecl.php.net/package/tidy
SafeHTML
http://pixel-apes.com/safehtml/
なんてのがある。(どっちもPEARじゃないね)
0319nobodyさん
2006/03/09(木) 15:06:39ID:???0320nobodyさん
2006/03/12(日) 16:46:29ID:UjH0HOBYhttp://pear.php.net/pepr/pepr-proposal-show.php?id=362
中身はたいしたことないけど、期待age
0321nobodyさん
2006/03/12(日) 16:52:02ID:???そのコメント自体が結構参考になる。
0322nobodyさん
2006/03/12(日) 20:13:55ID:???imodeはギリギリOKだと思ったが、hatenaは日本のリポジトリに突っ込むべきかと。
(まあAmazonだって全世界サービスとは言えないか)
http://ns1.php.gr.jp/pipermail/phpug-admin/2005-December/001057.html
これまだなんかね。
0323nobodyさん
2006/03/17(金) 00:04:48ID:???0324nobodyさん
2006/03/17(金) 01:36:33ID:???0325nobodyさん
2006/03/28(火) 04:03:40ID:y/Gmg3I1LEFT JOIN hoge_table ON id = hoge_id AND code = hoge_code
のように、2つの要素をANDで指定できますか?
0326nobodyさん
2006/03/28(火) 04:34:16ID:???できない.
プライマリキーがひとつしかないテーブルにしか対応しないと思った方がいいと思う.
(これは joinAdd() に限らず DB_DataObject 全体にそんな傾向がある気がする)
普通の INNER JOIN なら whereAdd() を併用すると何とかなったりするんだけど,
LEFT JOIN は自分も前に頑張ったけどダメだった.
そして言い訳のようにマニュアルには「joinAdd() がややこしくなってきたら
生 SQL 食わせちゃった方がいいっすよ」とか書いてあるw
0328nobodyさん
2006/03/28(火) 05:35:19ID:???これは解決策にはなりませんでした・・・。うーん。
0329nobodyさん
2006/03/28(火) 06:35:46ID:???別ライブラリってのがどういうものかわからないけど,
> $t1 = DB_DataObject::factory('hoge');
> $t2 = DB_DataObject::factory('fuga');
> $t1->joinAdd($t2);
> $t1->find();
と
> $t1->query( "SELECT * FROM hoge INNER JOIN fuga ON ( hoge.id = fuga.id )" )
は同値.
前者が複数キーテーブルのせいで実行できなかったとして,
それを後者に置き換えてもそのライブラリの問題ってのが発生するなら,
そもそもその案件に DB_DataObject が使えないってことじゃないかって気がする.
0330nobodyさん
2006/03/28(火) 12:02:04ID:???query() 使ってます。
別ライブラリというのは PEAR Structures_DataGrid です。
これは、こちらが渡した DB_DataObject のオブジェクトを、
追加操作してFetchするため、こちらで生SQLを発行しちゃうと
残念ながら効果がなくなるようなんです。
0331nobodyさん
2006/03/28(火) 13:22:07ID:???DataObject を継承したクラスを作って,
find() の時にオリジナルクエリを決め打ちで流すようにして,
Structures_DataGrid にはそいつを渡すってのはどうかな?
その場合は,Structures_DataGrid の _detectSourceType() を
get_parent_class() でなく is_a() を使うように変更したらさらに楽にいけるかも.
0332nobodyさん
2006/03/28(火) 16:02:45ID:???Structures_DataGrid に適切なLimitをセットしてもらって、
データ取得件数を最適化してもらいたいからなんです。
だからオリジナルクエリを決め打ちで流すのは効果なさそうだと。
0333nobodyさん
2006/03/28(火) 17:47:00ID:???LEFT JOIN とかを適切に行なうビューを create view して
そのビュー用の DB_DataObject を作るってのはどないだ
0335nobodyさん
2006/04/03(月) 15:39:54ID:mvo6jAJ1http://sample.com?ID=1&pageID=1 → http://sample.com?ID=2&pageID=2
みたいにpageID以外の変数(ここでは ID)をページごとに変える方法ってありますか?
0336nobodyさん
2006/04/03(月) 19:48:56ID:???とりあえず extraVars オプションを使ってみてはいかが.
0337nobodyさん
2006/04/06(木) 14:05:03ID:gNYW2zNbとんくすです。extraVarsの解説してるサイトってあまりないんですよね。
value=1 みたいに静的な変数は付加できるけど、value=%dみたいなこと
ができないみたいで…。
0338nobodyさん
2006/04/06(木) 14:06:54ID:???pageIDを使うのじゃだめなのか? 何がしたいんだか分からん。
0339nobodyさん
2006/04/06(木) 14:28:24ID:???なんで pageID 以外に同じ値を冗長に持たせたいのかわからん.
単に変数の名前を変えたいだけなら urlVar に 'ID' を指定.
あるいは extraVars で 'ID' の値として $_REQUEST['pageID'] を指定してやるとか.
挙動を変更したいなら Pager_* を継承したクラスを作ってそこでやるとか……
0340nobodyさん
2006/04/07(金) 11:36:01ID:???HTML_QuickForm で 「denotes required field」って部分を日本語に置き換える方法って無いでしょうか?
マニュアルがあればこの辺も調べたいんですが・・
0341nobodyさん
2006/04/07(金) 13:19:09ID:???[PHP-users 23103]QuickForm::addRule() requiredを使用したときに表示される"* denotes required field"を変更したい
ttp://ns1.php.gr.jp/pipermail/php-users/2004-August/023625.html
0342nobodyさん
2006/04/07(金) 14:14:44ID:???ありがとうございます!
http://pear.php.net/manual/en/package.html.html-quickform.html-quickform.setrequirednote.php
これですね。
$form->setRequiredNote('<font color=red>*</font>は必須項目です。');
って感じで出来ました。
0343nobodyさん
2006/04/07(金) 14:17:39ID:???0344340,342
2006/04/07(金) 14:32:22ID:???0345nobodyさん
2006/04/11(火) 18:36:04ID:???0346nobodyさん
2006/04/14(金) 18:17:06ID:ztoDRCLM今はxamppを使っています。
pear config-show
をすると、ディレクトリの設定などがwampp2当時のままになっていました。
xampp側で再設定するにはどうすればいいのでしょうか?
0347nobodyさん
2006/04/14(金) 18:26:29ID:STB/6fVFたぶんパス通ってないだけだよ。
0348346
2006/04/14(金) 19:12:42ID:???ありがとうございます。
古い環境変数を削除して、pathを通して、
再起動させたら、直りました。
batファイル内を見たら環境変数がなければ再設定しているようなので、
環境変数が邪魔していたようです。
0349nobodyさん
2006/04/24(月) 01:19:24ID:???したいんですけど、pearでそんな都合がいいもんないですかね?
0350nobodyさん
2006/04/24(月) 01:26:53ID:???$doc = new DOMDocument();
$doc->load('test.xml');
var_dump($doc);
これだと、オブジェクトのID返すだけなんですね。
$docがどんな状態かすぐに調べる方法ってありますか?
0352nobodyさん
2006/04/25(火) 23:23:53ID:???0353nobodyさん
2006/04/25(火) 23:40:55ID:???http://pear.php.net/package/HTTP_Upload
HTTPでアップロードするんじゃないのなら、その条件を提示
0354nobodyさん
2006/04/30(日) 01:25:55ID:TxzAQxO9PEARを手動インストールしています。
目的のHTTP_REQUESTは動いたのでいいんですが、
PEAR_infoが動きません。PEAR基本パッケージ?以外に何かインストールしないといけないんでしょうか?
0355nobodyさん
2006/04/30(日) 10:12:45ID:TxzAQxO9Console_Getoptが必要のようだったので、インストールしました。
で、結果は動きません。エラーログすら吐き出さない・・・。
PHP_info.phpにアクセスすると、しばらくたって白紙画面になります。
なにか、案などありませんでしょうか?
0356nobodyさん
2006/04/30(日) 11:54:05ID:???そもそもPEAR_Info使ってもしょうがないんじゃね
手動で入れたやつは情報見れんよ確か
0357nobodyさん
2006/04/30(日) 12:26:03ID:???0358nobodyさん
2006/04/30(日) 12:37:11ID:???レスどもッス。
そうなんすか。手動だとPEAR_Info動かないんだ・・・。
確かに、PEAR_Infoなくても問題ないんですけど、動かないってのがまず気になったのと、
時間がたって、「あれ?なに入れてたっけ?」で確認できたら便利かなと。
必要なモジュールは入ってると思うんだけどなぁ・・・。
0359nobodyさん
2006/04/30(日) 12:40:38ID:???サイボウズの奴見つけたんだけど、メンテしてないようで、prototype.jsが1.4.0だとエラー...
あとAPIが今イチ使いづらい。
0361nobodyさん
2006/04/30(日) 15:22:45ID:???Console_Getoptは、その方法で必要ってのはわかったんですけど、
他に必要そうなものが見当たらないんですよね。
ログが出ればわかるんだろうけど、なんでログでないんだろ。
ログは、別のPHPで適当にエラー起こすとちゃんと出るのに・・・。
0362356
2006/04/30(日) 21:10:32ID:???いや、手動で入れたPEAR_Infoが動かない、ってことじゃなくて
手動で入れたPEARモジュールのディレクトリ指定して
PEAR_Infoの一覧にその手動で入れたモジュール一覧って表示できたっけなあと
PEAR_InfoってPEARのパッケージマネージャが作成する
レジストリファイルを参照してどんなPEARモジュールが入ってるかを
表示してたような気がする、、、って書いてて自信なくなってきたや
ええと、手動で入れたモジュールが表示されるかどうかは別として
ただ白紙とか動かんってことは何かミスがあるかと思う
動くのは動くはず
0363359
2006/05/01(月) 04:52:20ID:???スレ違い、すま
0364nobodyさん
2006/05/01(月) 12:43:13ID:???なるほど。いろいろいじってたら、時々エラーログが出たりする・・・。
ログは、
PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/httpd/vhosts/ドメイン名/httpdocs/PEAR/PEAR/Registry.php on line 161
で、Registry.phpでエラーが起こってるってことなんすね?
該当の場所は、
function hasWriteAccess()
{
if (!@file_exists($this->install_dir)) {
$dir = $this->install_dir;
while ($dir && $dir != '.') {
$dir = dirname($dir); // cd ..
if ($dir != '.' && @file_exists($dir)) { ←ここが161行目
if (@is_writeable($dir)) {
return true;
} else {
return false;
}
}
}
return false;
}
return @is_writeable($this->install_dir);
}
ん〜どうしたもんかな・・・。
0365nobodyさん
2006/05/01(月) 14:47:38ID:???PEAR_infoが動かない原因がわかったっぽい・・・。
Info.phpのソースを追っていてわかったのは、
共有サーバーなので、/usr/share/pearにアクセス権がないのが根本的な原因っぽいっす・・・orz
で、pear_info.phpのnew PEAR_Infoのときに、
new PEAR_Info("ローカルインストのPEARディレクトリのパス","????")
に変えてみたら、エラーログは出るようになりました。
で、PEAR_Infoの第2引数は、何を入れればいいんでしょ?
PEAR_Infoの中で、new PEAR_Configのときに必要な引数なんですが、
マニュアルによると、
string $user_file
file to read user-defined options from
なんだそうで。手動インストした場合、なんのパスになるんでしょうか?
0366nobodyさん
2006/05/01(月) 23:14:35ID:???0367nobodyさん
2006/05/02(火) 12:40:26ID:???■ このスレッドは過去ログ倉庫に格納されています