トップページ⇒php
983コメント417KB

Pear

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
ってどうよ。
0413nobodyさん04/02/19 17:54ID:???
>>412
なにやら面倒そうだね。
ところで 2ch pear wiki って誰でも勝手に書きこんでいいの?
0414nobodyさん04/02/19 19:09ID:???
DB_DataObject 使ってみました。すごい便利ですねこれ。
DB_DataObjectクラスを継承した daoMytable を作って
$dao = new daoMytable;
$dao->id = 3;
$dao->name = 'mona';
$dao->address = 'tokyo';
$dao->update();

を実行すると、
UPDATE mytable SET name = 'mona', address = 'tokyo' WHERE id = 3;
のような SQL文を自動で生成して、DBクラスを使ってそれを実行してくれます。

実行前にテーブルの情報を、データベースにSQL文を使って取り出してる
みたいで、文字列のカラムには自動でクォートしてくれると至れりつくれり
のようです。

でもこのテーブルの情報を毎回問い合わせるのは勿体無いと思うのですが、
これはクラス定義の際に指定できないんですかね。各カラムの属性をクラス
で定義できたらいいなと思うんですが。
0415nobodyさん04/02/19 19:11ID:???
追記
あと、int型の列に文字列を挿入しようとすると、勝手に 0 を挿入するような
SQL文を実行されてしまうようです。ここらへんの挙動って変更できないので
しょうか。PEAR::isError() なんかでエラーを取得できると嬉しいのですが。
0416nobodyさん04/02/19 19:28ID:???
>>414
テーブル毎に DB_DataObject の派生クラスを作成して、必要なメソッドを上
書きすればお望みの動作が実現できます。この場合は INI ファイルは必要あ
りません。
最低限の実装はこんな感じです。
class MyApp_DataObject_TableName extends MyApp_DataObject
{
function MyApp_DataObject_TableName()
{
parent::MyApp_DataObject();
$this->tableName('table_name');
}
function table()
{
return array('id' => 1,
'name' => 2,
'description' => 2,
'rdate' => 2,
'mdate' => 2
);
}
function keys()
{
return array('id');
}
function sequenceKey()
{
return array('id', true, false);
}
}
0417nobodyさん04/02/19 19:35ID:???
>>413
誰でも書き込んでいいと思いますよ。
0418nobodyさん04/02/19 19:48ID:???
>>416
ありがとうございます。
DB_DataObjectクラスのコメントの部分に思いっきり書いてありましたね。
読んでもよく意味が分かってなかったので助かりました。
0419nobodyさん04/02/19 20:04ID:???
>>414
毎回自動でやるより,最初に /usr/local/lib/php/DB/DataObject/createTables.php を使って,
ini ファイルを作ってやった方が,効率も速度も利便性も良いと思います.

でも,oracle だと少しいじってやらないと動かないかもしれません.
以前に比べれば,少しはマシになっているのですが……
pg や my では素のまま動きますね.
0420nobodyさん04/02/21 00:03ID:???
mojaviでLiveUser用の権限コンテナってあるんでしょうか?
0421nobodyさん04/02/21 04:11ID:???
>>419
ありがとうございます。
Generator.php の使い方がよく分からなくて困ってました。
createTables.php から使ってみたら見事、データベースのテーブル定義を
取得して iniファイルと各テーブル用クラスを出力してくれました。

これは便利です。テーブル定義は iniファイルかクラスの変数のどちらか
に定義しておけばそれを読み込んでくれるってことですよね。ちょっぴり
感激です。

0422nobodyさん04/02/21 11:06ID:???
>>421
おめでとうございます.もうコレなしで PHP できません(w

テーブル定義は ini ファイルがメインになり,内部動作もこれに依存します.
例えば setFrom() や toArray() といった「全てのフィールドをアレコレする」というメソッドは,
クラスのコードに書いてあっても ini にないフィールドは無視されます.

テーブルのフィールド名や構成を変更した時は,
必ず createTables.php を再走行しましょう.
この時,クラス定義のコードで AUTOCODE とかなってる部分以外は保存されるので,
安心して上書きできます.
0423nobodyさん04/02/22 17:42ID:???
>>422
自分のコードががらりと変わってしまいました(・∀・)イイ!!
ところで DB_DataObject には isError() がないみたいなんで
すがどうやってエラーを検出したらいいんでしょうか。

クラス定義を見ると raiseError() でエラーを作成してる
のですが。
0424nobodyさん04/02/22 18:03ID:???
データベースの接続に失敗したときに、問答無用で

「DB Error: connect failed」

と表示されてしまうので、ここらへんを制御したいと
思った次第です。

DB_DataObject::debugLevel();

でも、このエラーは表示されてしまいます。
0425nobodyさん04/02/22 18:45ID:???
DB_DataObjectで抽出条件等を設定中に
実際どのようなSQLクエリが発行されるか確認する方法ってありますか?
->update()する前等に生成されるSQLクエリが
正しいかをテストしたいのですが・・・
それらしいメソッドが見当たらない・・・
0426nobodyさん04/02/22 18:51ID:???
>>423
PEAR::isError() が使えませんか?

>>425
DB_DataObject::debugLevel() で表示されます.
あと ini で設定する ignore_update とかそんなんも参考までに.
0427nobodyさん04/02/22 20:27ID:???
>>426
発行したSQLクエリを表示はできるようなのですが、
->update()を実行した時点で自分の書いたコードに誤りがあると
間違ったSQLクエリを実行してしまう可能性がありますよね。
なので、実質的なデータベースのupdate自体は行わずに
SQLクエリのみを表示するという事は無理でしょうか・・・?

$person = new DataObjects_Person;
$person->get(12);
$person->name='fred';
/* ここで一度確認したい */
//$person->update();
0428nobodyさん04/02/22 22:38ID:???
>>427
>>426
> あと ini で設定する ignore_update とかそんなんも参考までに.

正確には debug_ignore_updates だった.

あるいは,全てにおいてとにかくどんなクエリが実行されてるかを知りたいのならば,
_query() を自分のクラスで overload して,特定条件で引数を表示するようにしたら良いかと.
0429nobodyさん04/02/22 23:44ID:???
最初に Auth で認証して、各コンテンツで認証済みかどうかチェックする際に
どうしてますか?

いちいち Auth のインスタンスを作成して getAuth() メソッドを呼出してる
のでしょうか。それとも自前で session_start() して $_SESSION['_authsession']['registered']
を調べてますか?自分は後者なんですが何か変ですかね。
0430nobodyさん04/02/23 00:08ID:???
auto_prepend_file使ってる
0431nobodyさん04/02/23 00:12ID:???
ひとつのディレクトリに要認証なページとそうでないページが混在する場合,
auto_prepend_file では不便だったので,
auth_check.php なんてファイルを先頭で include してる.
そのファイルの中では new Auth したりエラーだったらログイン要求ページに飛ばしたり
ログインしてたらグローバル変数にメンバ情報のオブジェクトを入れたりとかしてる.
0432nobodyさん04/02/23 00:57ID:???
やっぱり何らかの手段で new Auth するファイルを読み込む
のがよさそうですね。参考になりました。

そろそろ LiveUser も試してみようかな。
0433nobodyさん04/02/24 04:09ID:???
DB_DataObject の update() メソッドで、$settings に値を設定する
部分に理解できない点がありました。$settings は UPDATE構文での
SET に続く部分を設定する変数のようです。

// if の条件部は何を判別してるのか?
if ($v & DB_DATAOBJECT_STR) {
// name = 'mona' という文字列を追加してるんだろうけど
// なぜ末尾に ' ' を追加してる?
$settings .= "$kSql = ". $DB->quote($this->$k) . ' ';
continue;
}
if (is_numeric($this->$k)) {
$settings .= "$kSql = {$this->$k} ";
continue;
}
// なぜ、どの if にもマッチしなかった場合に intval() するのか?
$settings .= "$kSql = " . intval($this->$k) . ' ';
0434nobodyさん04/02/24 04:17ID:???
続き
自分なりの理解だと、update() は次のような手順

1. データベースに接続
2. 指定したテーブルが存在するか確認。なければ false を返す
3. テーブル定義を ini ファイルから読み出すか、table() を実行して取得
4. 各カラムの値について
4.1 オブジェクトの変数に保存されてるか調べる
4.2 文字列ならクォートして、数値ならそのままにして、結合する(条件があえば Cast.php を使う)
5. 手順4を元にしてSQL文を生成
6. SQL文を実行する

こんな感じだと思うんですが合ってますか?
update() を参考にして、SQLを実行しないで表示だけするメソッド作るのと
int型のカラムに文字列を挿入しようとすると 0 に変更するのを、NULL に変更したいのです。
0435nobodyさん04/02/24 11:16ID:???
>>433
> // if の条件部は何を判別してるのか?
> if ($v & DB_DATAOBJECT_STR) {
フラグが立ってるか見てるだけでそ。そういう意味ではなく?

> // name = 'mona' という文字列を追加してるんだろうけど
> // なぜ末尾に ' ' を追加してる?
> $settings .= "$kSql = ". $DB->quote($this->$k) . ' ';
次の sql構築のための空白を追加してるんでわ?

> // なぜ、どの if にもマッチしなかった場合に intval() するのか?
> $settings .= "$kSql = " . intval($this->$k) . ' ';
コメントが書いてあるね。v1の制限ということにしたいんじゃないのかな。

> update() を参考にして、SQLを実行しないで表示だけするメソッド作るのと
> int型のカラムに文字列を挿入しようとすると 0 に変更するのを、NULL に変更したいのです。
こういうの DataObjectに限らず、PEAR全般的に苦手でしょう。
一つのメソッドに処理詰め込み過ぎ、クラスにメソッド詰め込み過ぎは PEARの十八番。
0436nobodyさん04/02/24 20:17ID:???
>>435

ありがとうございます。大体分かったのですが

> if ($v & DB_DATAOBJECT_STR) {
ここの & って && とは違いますよね?
リファレンス以外の & の使用法をマニュアルから発見できませんでした。

あと v1 ってのは DB_DataObject のバージョン 1.x 系列という意味ですか?
0437nobodyさん04/02/24 20:27ID:???
>>436
& はビット演算子の AND です。
http://www.php.net/manual/ja/language.operators.bitwise.php
0438nobodyさん04/02/25 02:00ID:???
>>436

> ここの & って && とは違いますよね?
確かにビット演算するメリットは薄いからね。

> あと v1 ってのは DB_DataObject のバージョン 1.x 系列という意味ですか?
たぶんそうじゃないかな。コメントには V2としか書いてないけど。
正しい解釈は俺が知りたいくらい。
0439nobodyさん04/02/25 02:09ID:???
>>437
なるほど。そこは見落としてました。ありがとうございます。
0440nobodyさん04/03/02 22:11ID:???
DB_DataObject凄い良さそうで気になってるんですが、joinとかはどーなるんですか?
0441nobodyさん04/03/02 23:33ID:???
>>440
MySQL や pgsql では,けっこうマトモに動きます.

ttp://pear.php.net/manual/ja/package.database.db-dataobject.db-dataobject.joinadd.php
ここの「例」を見ればだいたい解ることでしょう.

ただ,こういう単純なの以外は「query() で直接 SQL 叩いた方が良いよ」とマニュアルにありますね(w
0442nobodyさん04/03/03 10:02ID:???
DB_DataObjectってまだMDBには未対応なんですか??
使いたすぎるよ・・・
0443nobodyさん04/03/03 23:25ID:???
>>442
昔は MDB_DataObject があったのに、どこかに消えたのかな?
0444 ◆AngelH/kMI 04/03/04 23:23ID:???
MDB_DataObjectはお亡くなりになりました。

・・・というのは冗談で。
いつの間にか消えてますね。
googleで検索すると残骸らしき物が出てくるけど。

何となく、MDB2に統合される予感が。
pear install MDB2-alphaで確認してみてくださいな。
0445nobodyさん04/03/05 05:53ID:???
MDBでDB_DataObject使うとDBに比べてどんなメリットがあるの?
0446nobodyさん04/03/05 10:17ID:???
MDB はベンチ結果が場合により DB より良い……らしいので,その恩恵を受けれるのでは.
0447nobodyさん04/03/05 12:10ID:???
MDBは操作面が楽だから使いたいんじゃないの?
MySQLやPostgreSQLみたいにインスコやDB作成も楽だし

運用面を考えると慎重になるけどね
044844704/03/05 12:11ID:???
間違えた
○MySQLやPostgreSQLみたいにインスコやDB作成も楽だし
×MySQLやPostgreSQLと比べるとインスコやDB作成も楽だし
0449nobodyさん04/03/05 15:33ID:???
しかし MDB,getAll() とかの楽ちん系メソッドで param が渡せなくなったのは
DB に比べて使いにくいと思うのだが.
SQL 解析エリアをケチろうとして ? とか & とか多用すると,
いちいち prepare() → query() しなきゃならんですよ.

……もしかしてもっと良い方法がある?
0450nobodyさん04/03/09 16:18ID:???
http://cvs.php.net/co.php/pear/DB_DataObject_FormBuilder/examples/sql/schema.gif?r=1.1
pearでよく↑みたいなスキーマ図を見るけど、結構きれいだよね。
これって何のツールで出力してるんですか?
0451nobodyさん04/03/10 14:01ID:???
> http://pear.php.net/package/PHP_CompatInfo
> PHP_CompatInfo will parse a file/folder/script/array to find out the minimum
> version and extensions required for it to run.

これ面白いです.まだバグが多いですが(w

このノリで,過去のコードが新バージョンの PHP で問題なく動くかどうか
走査してくれるプログラムがあれば,重宝しそうだなぁ.
0452nobodyさん04/03/10 16:18ID:???
>>450
ttp://pear.php.net/package/PhpDocumentor
あと Doxygen てのもある。
0453nobodyさん04/04/02 16:49ID:???
保守 age 代わりに質問投入 (´・ω・`)

HTML_QuickForm で addElement や addRule 並べるのが鬱陶しくて配列で回してるんですが、もっとお得な方法ありません?
配慮されていてもいい箇所だなーと思ったので、自分が何か見落としているのではないかと思った次第。
0454nobodyさん04/04/03 00:54ID:???
>>453
確かに面倒なんだけど,じゃ代わりにどんな機能なら汎用的で納得できるか,と考えると,
意外に思いつかなかったですわ(w

自分は,項目を並べた CSV から QuickForm を自動生成するクラスを自分で作っちまいました.
045545304/04/06 04:00ID:???
>>454
ありがとうございました。
やはりそういう事になりますか。

> 自分は,項目を並べた CSV から QuickForm を自動生成するクラスを自分で作っちまいました.
この辺、車輪の再発明祭になってそうなのですが、そろそろ何か出てくれませんかねぃ。
0456nobodyさん04/04/11 20:04ID:???
全然おもわんなー>addRule 並べるのが鬱陶しくて
別にCSV作ってそれ読むクラスとかよりシンプルだと思うんだけど
0457nobodyさん04/04/11 20:40ID:???
>>456
同感。
0458nobodyさん04/04/11 22:00ID:???
そらー並べるだけなら CSV 読むクラスよりシンプルに決まってるでしょ,CSV 読まないんだから.

CSV 読むクラスを読むだけのソースは addRule() 並べるよりシンプルですよ.
それと,CSV をプログラム知識のない人でも書けるので,誰でもある程度好きなフォームを設計できるようになりました.
なりました,というか,それが目的で作ったんですけどね.
0459nobodyさん04/04/11 23:05ID:???
.
0460nobodyさん04/04/11 23:05ID:???
>>459
誤爆
0461nobodyさん04/04/12 09:33ID:???
>>458
目的がプログラムの知識のない人が書けることなら構わないと思う。前提条件
が違えば考慮することも違うのは当然なので。
プログラマの視点からすればビジネスロジック以外に時間を掛けるかどうかは
じっくり考慮する必要があると思う。
0462nobodyさん04/04/27 01:15ID:???
保守。あんまネタないですかね?
0463nobodyさん04/04/27 01:26ID:???
つーか、どのくらいの割合でPEARが使われてんかな。
Perlと違って関数が豊富だから、機会がなければ全然使わない人も多そうな感じ。

あと、速度(負荷低減)重視のため、PEARはあえて使わないってこともあったりする?
0464nobodyさん04/04/27 03:38ID:???
>>463
俺の負荷が軽くなる事の方が大事です。
サーバーの負荷は問題になれば相応の投資が為されるしな。(アクセラレーター導入、サーバー買い換え等)

考えないって事じゃなくて優先順位の問題かな。。
PEAR まんせー

1 年前に比べれば爆発的に進んだよね。今頃は PEAR? 何って感じで PEAR = PEAR::DB 的な誤解も多かった。
0465nobodyさん04/04/27 04:15ID:YGiFCKd6
PEARのMailでメール送信すると日本語が化けるんですが対処法はあるのでしょうか?
SMTPで送りたいのでmb_send_mailは使えないんです。
0466nobodyさん04/04/27 04:25ID:???
>>465
昔のPHPスレで誰かがまとめてくれてたやつを載せておく。

外部のSMTPサーバを使って日本語でメールを送信する
方法についてまとめてみました。PHPではEUC-JPを使う
と仮定してます。

require_once("Mail.php"); // Mail/mail.php ではない
mb_internal_encoding('EUC-JP'); // PHPで使ってる文字コードを指定
//送り先の設定
$recipients = "[email protected]"; // エンベローブの設定
//ヘッダーの設定
$headers['From'] = '[email protected]';
$headers['To'] = '[email protected]';
$subject = 'サブジェクト';
$headers['Content-Type'] = "Text/Plain; charset=iso-2022-jp"; // これはなくてもいいのかも
//サブジェクトののエンコード
$headers['Subject'] = Mb_Encode_Mimeheader($subject,"ISO-2022-JP",B);
//本文
$body = "日本語だよママン";
//本文のエンコード
$body = Mb_Convert_Encoding($body,"ISO-2022-JP","EUC-JP"); // PHPで使ってる文字コードを指定
//SMTPサーバーの設定
$param['host'] = '192.168.0.2';
$param['port'] = 25;
//オブジェクトを生成して送信
$mailer =& Mail::factory("smtp", $param);
$status = $mailer->send($recipients, $headers, $body);
0467nobodyさん04/04/27 10:16ID:???
mb_send_mail() でなく PEAR::Mail を使うことのメリットってどんなのがありますか?
見た感じでは普通に mb_send_mail() を使う方が簡単に思える……


0468nobodyさん04/04/27 10:38ID:???
>>467
Unix系OSでsmtpをしゃべりたいときとか。
>>466のコードを見るとまとめとしては古臭さを感じなくもないが、
使い方のサンプルとなるとこんなもんでしょ。
0469nobodyさん04/05/07 13:10ID:Jax/P/Ee
AuthクラスでgetUsername()みたいにログインした時のパスワードをもってきたいんだけどできないのでしょうか?
0470マリモーマ ◆perlnoUpCk 04/05/07 13:13ID:???
メール送信したら女王様を 送っちゃったよ なぜなら SMtpで 送ったから なんちゃって
0471nobodyさん04/05/07 14:12ID:???
>>469
無理。以前、CRAM式の認証をしたくて調べたんだが、
認証そのものはAuthクラスから呼び出される各Container側で行っており、
Authクラスにはその結果だけ知らされる仕組みになっていた。
ま、FileだけとかDBだけと決め打ちするのなら、そのContainerだけ改造
すれば可能。
047247104/05/07 16:40ID:???
あ、ログインしたときの$_POST['password']を保持しておけばそれで>>469は解決するのか。
0473nobodyさん04/05/07 18:44ID:???
>>470
マリモーマ うざいから 氏んでくれ いちいち 単語ごとに 区切るなよ 読みづらいから
0474nobodyさん04/05/11 11:11ID:dmRD31gk
開発環境だとうまく行くんですが、サーバーにあげると
次のようなエラーになってしまいます。なんででしょう。

Fatal error: Failed opening required 'PEAR.php' (include_path='') in /home/XXXX/XXXX/PHP/DB.php on line 26
0475nobodyさん04/05/11 11:18ID:???
>>474
include_pathが開発環境と違うからだろ。
エラーメッセージ嫁よ。
047647504/05/11 11:20ID:???
「開発環境と違う」からではなくて、正しく設定されていない。
が正解かな。スマソ
0477nobodyさん04/05/11 11:46ID:dmRD31gk
>476
ご返事、ありがとう。
ただ、開発環境もサーバもDB.phpとPEAR.phpは同じディレクトリに
おいてあるんだけどうまく行かない。
0478nobodyさん04/05/11 11:53ID:dmRD31gk
バージョンのせいは考えられるでしょうか。
サーバー PHP Version 4.1.2
開発環境 PHP Version 4.3.4
0479nobodyさん04/05/11 11:57ID:???
>>477
include_path が空だということは DB.php は、

require_once('/path/to/DB.php');

でロードしている訳だよね。 PEAR.php は DB.php から、

require_once('PEAR.php');

のようにロードされているから include_path が空の場合は読み込みが失敗す
るのは自明のこと。 include_path に DB.php までのパスを設定できれば解決
する。 ini_set が使えるなら次のようにしてみるといい。

ini_set('include_path', '/path/to');
0480nobodyさん04/05/11 13:52ID:dmRD31gk
>479
ありがとうございました。
しかし、ini_setはしましたが、まだうまく行きません。

Fatal error: Call to undefined function: is_a() in /home/xxxx/xxxx/PHP/DB.php on line 431

431行目は
function isError($value)
{
return is_a($value, 'DB_Error');
}

0481nobodyさん04/05/11 14:21ID:???
>>480
include_pathになんて入れたの?
そのエラー文からだと、/home/xxxx/xxxx/PHP としたのか?

つーか、やる気ある?
0482nobodyさん04/05/11 14:38ID:???
>>480
is_a() 関数は 4.2.0 以上から使えるようだ。
http://jp.php.net/manual/ja/function.is-a.php

各 PEAR パッケージが要求する依存関係リストを確認して必要なら下位バージ
ョンを使うとよい。
0483nobodyさん04/05/11 16:12ID:???
ちなみに is_a() の問題は is_a() の >>482 にあるマニュアルページの contributed notes に下位バージョンでの互換用関数のコードがある.
DB.php を読む前に定義しとけば下位バージョンでもひとまず動作はするよ.

# つーか,エラーメッセージも読まずに「わかりません,やってください」なんてのは php-users でやってくれ(w

あと老婆心ながら.開発環境の方が新しいバージョンなのはトラブルの元になるからヤメた方が良い.
0484nobodyさん04/05/12 01:18ID:???
PEARのサイトがUTFになってから
IEが何故か自動認識してくれず化けまくり
同じ症状の人います?
何か原因があるのかな・・・
0485nobodyさん04/05/13 10:47ID:???
pear install xxxをすると、ダウンロードはしてくれるんだけど、
その後全く動かなくなってしまうのですが、なぜでしょう?

pear download xxxでモジュールのみダウンロードして
pear install xxx.tgzをしても同じく止まったままになってしまいます
0486nobodyさん04/05/13 18:06ID:???
「全く動かなくなる」のところをもうちょっと具体的に.

あと,先に手動で Archive_Tar あたりをアップデートしてから再挑戦してみるとか.
0487nobodyさん04/05/14 09:20ID:???
485です

環境を書き忘れていました。
サーバ:MacOSXServer 10.2.8
apache1.3.29+php4.3.4

具体的な現象は485に書いた通りです。
こんな感じ
↓
[server:/Users/xxxxxx] xxxxxx# pear install auth
downloading Auth-1.2.3.tgz ...
Starting to download Auth-1.2.3.tgz (24,040 bytes)
........done: 24,040 bytes

これで止まってしまいます。この後、30分待っても応答がありません。

pearcmd.phpのソースを追っかけてみたら、>>486さんの言う通りArchive_Tar.phpの
_extractInString内にて処理が返ってこない現象が出ているようです。
(まだその中を追い切れてません)

Archive_Tarの手動アップデートを試してみます。
ありがとうございました。
0488nobodyさん04/05/18 16:44ID:???
2ch PEAR Wiki ですが編集しようとすると怒られてしまいます。

エラーメッセージは、

cmd=edit&page=[[xxx]] は有効な WikiName ではありません。

のようなものです。
0489nobodyさん04/05/19 00:22ID:???
Powered by PHP 5.0.0RC3-dev
つーのが臭い。。。こんなバージョンで運用する管理人さんって?
0490 ◆AngelH/kMI 04/05/19 01:17ID:???
うあー。
ごめんなさいごめんなさい。
PHP5対応暫定でしました。

HTTP_GET_VARS
HTTP_POST_VARS
HTTP_SERVER_VARS
HTTP_COOKIE_VARS

このあたり、PHP5からもう使えないんですね・・・。
0491nobodyさん04/05/19 09:25ID:???
>>490
PHP マニュアルの
http://jp.php.net/manual/ja/configuration.directives.php#ini.register-long-arrays

によると、php.ini の register_long_arrays を On にすると使えるけどパフォーマンスの
問題で Off にすることが推奨されている。

デフォルトは On と書いていて、PHP ソースに含まれる php.ini-dist では、On だけど、
php.ini-recommend を見ると Off になっているので、その影響かな。
0492nobodyさん04/05/29 14:44ID:???
DB_DataObjectって複数のデータを一括でinsertする方法は無いですか?
query()で書くしかない?
0493nobodyさん04/05/29 15:06ID:???
自分が知る限りでは,ないです.
0494nobodyさん04/05/30 23:45ID:???
今存在に気付いたんですけど pear.conf なんて前から
ありましたっけ?
0495nobodyさん04/05/30 23:56ID:???
config-setでsetされるので、4.3以降かな。
このCLIベースの永続セッションってどうやってつかうんだろ?
0496nobodyさん04/05/31 01:43ID:???
mojaviの質問、ここでいいんでしょうか…

ActionChainの仕組みが今ひとつわかりません。

http://mojavi.org/forum/viewtopic.php?t=433
を見て試してみてるんですが、
ActionChain::fetchResult()で戻ってくる結果ってどうやってセットするものなんでしょう。
049749604/05/31 02:35ID:???
やっと理解出来ました…。
これってob_start → ob_get_contentsで
そのモジュールのVIEWが出力してる値を保存してるだけだったんですね。
0498nobodyさん04/05/31 10:05ID:???
>>497
ご存じかもしれませんが、 milestone b2 の ActionChain にはバグがあるの
で注意して下さい。
http://pear.sakura.vg/index.php?%5B%5BITEMAN%5D%5D
0499nobodyさん04/06/02 10:19ID:???
>>492
複数のデータっていうのがどういうものなのかわかりませんが
私は配列で格納された複数のデータをforeachでautoexecuteする
メソッドを用意してそれで一括登録してます。
(って全然スマートじゃないですけど・・)
0500 ◆AngelH/kMI 04/06/02 22:36ID:???
複数のデータっていうのは多分
MDBで言うExecuteMultipleでinsertみたいな感じかと。
それなら、まあ499さんの言うようなラッパー書くしかないかな・・・。

しかし、DB_DataObject良いね。
今まで使ってなかったのはもったいなかったよ。
0501 ◆AngelH/kMI 04/06/04 01:39ID:???
ずっと聞こうと思っていた事をようやく思い出しました。

誰かmojavi + QuickFormで使ってる人いますか?
上手くやるとかなり楽出来るかな、とは思うのだけど
綺麗にまとめられない・・・。

良い実装例あったら見てみたいです。
0502nobodyさん04/06/04 11:02ID:???
>>501
使いまくってます。アレにも書くつもりですが、 サンプルを Wiki に載っけ
ておきましょうか?
050350104/06/04 13:40ID:???
>>502
む、出来たらお願いします〜。
0504 ◆AngelH/kMI 04/06/10 01:34ID:???
mojavi.orgがメンテ真っ最中らしい(笑
新しいトップが見えたり、ソースコードが見えたりしてる・・・。
こういう事故があるから、ドキュメントルート以下には最小限のコードしか置かない、
ってことなんでしょうね・・・。

そして
www.mojavi.org v2 released
June 9th, 2004
ですよ!
ついにきたー
0505nobodyさん04/06/10 13:49ID:???
>>504
これは Mojavi 2.0 リリースじゃなくてサイトがリニューアルされたというこ
とですよね。
dev.mojavi.org でこっそり公開されていた内容に置換されたみたいです。
0506nobodyさん04/06/10 21:51ID:???
>>505
俺が今朝書こうとして送信やめたレスとまったく同じ内容でびびった
0507 ◆AngelH/kMI 04/06/11 11:14ID:???
>>505
ああ、サイト変わったからそろそろMojavi2.0リリースかなぁという期待です(笑
0508nobodyさん04/06/11 23:44ID:???
Mojavi 2.0 リリースでしゅ。
0509nobodyさん04/06/11 23:58ID:u32wLhvU
>>508
2.0リリース&3.0スタートみたいね。
こんなもんまでありました。↓

[Mojavi 3.0 Manual]
ttp://wiki.mojavi.org:8080/99.html
051050904/06/11 23:59ID:???
ageてごめん。
0511 ◆AngelH/kMI 04/06/12 02:01ID:???
>>509
mojavi1からmojavi2が素晴らしい変化だったと思うので、
mojavi3にも超期待ですよ。

ただ、楽は出来るんだけどほんとにする事なくなりそう(苦笑
0512nobodyさん04/06/12 06:09ID:???
mojavi3がどんな風に改善されるかってどこかに
まとめてありますか?
0513nobodyさん04/06/12 06:50ID:???
それよりまずはmojavi2のドキュメントの充実を!!
■ このスレッドは過去ログ倉庫に格納されています