Pear
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0174iwa
03/07/08 15:08ID:H0naxmvDpearインストーラを使わずに従来の方法で作成すれば出来ます
お約束の
% phpize
% ./configure --enable-apc --enable-mmap
% make
# make install
>172
そんなこたあ無い
mmapの本来意味するところの機能が実装されました。
1スクリプトに対し1バイトコードを1ファイルとして再利用する
Version1のmmapという名のファイルキャッシュは便利ではあるが
memory mapped fileとは異なるものです。
>171
が欲しているmmapってどっちですか。
#こんな掲示板があったのね。
0175171
03/07/08 15:57ID:???すいません、mmapってどういうモノか全然分かってないです(汗
従来(?)のmmapで、php.iniに以下を設定することで
apc.mode = mmap
apc.cachedir = /tmp
/tmp 以下にキャッシュされ、apcが動いているんだなぁと実感できるので
今回のapc2.0bでも同様にやった所、/tmpに何も出来ないので
質問させて頂きました。
0176171
03/07/08 16:30ID:???pear install apc でapcをインストール
↓
php.iniに、「extension=apc.so」を追加
↓
Apacheの再起動
これだけ行い、[PHP-users 11469] から始まるスレッドを参考に
簡単なスクリプトでテストしたところ、目に見えて効果がでました。
もっと早くapcを使っておけばよかったと後悔(;・∀・)
0177nobodyさん
03/07/08 17:04ID:???情報や人柱が出そろうと使いやすくなります。
> #こんな掲示板があったのね。
iwa って… いわきりさめ キタ━━━━━(゚∀゚)━━━━━!!!! とか騒いでみる。
なんかこのスレが一番頼りになる情報源になってる気がする。
>>1-1000 ありが�d
0178171
03/07/08 17:20ID:???私のようなド素人ではあまりお役に立てないとは思いますが(;・∀・)
私が試したスクリプトは↓こんな感じです。
<?
require_once "Benchmark/Timer.php";
$timer = new Benchmark_Timer;
$timer->start();
$timer->setMarker('Mark 1');
for($i = 0; $i < 10; $i++) {
include("a.inc");
}
$timer->setMarker('Mark 2');
for($i = 0; $i < 10; $i++) {
include("b.inc");
}
$timer->setMarker('Mark 3');
for($i = 0; $i < 10; $i++) {
include("c.inc");
}
$timer->stop();
$timer->display();
?>
a.inc〜c.incの中身は同じで、「$a = 1;」を3万行書いただけです。
私の環境下では、apc無しで約25秒、apc有りで3秒ほどでした。
php.iniへの設定の書き方がよくわからないので
「extension=apc.so」しか書いて無いので、適切に設定すればもっと良くなるかも。
そこらへんの所、詳しい人情報くれると助かります
0179nobodyさん
03/07/08 19:05ID:???'filename.xls'にアクセスできません。ファイルは読み取り専用であるか、
または読み取り専用の場所にアクセスしようとしています。
または、サーバ上に保存されているドキュメントから応答がありません。
なるエラーが Excel2002(Windows2000) が出します。
ttp://pear.php.net/ にあるサンプルプログラムも全滅。原因分かる方いますか?
あー、すまそ。
確認不足だった。
フォローthanks。
>Version1のmmapという名のファイルキャッシュ
このあたりから誤解してたっぽ・・・。
0181nobodyさん
03/07/09 21:50ID:Q9PMAuxcHTML_QuickForm って使ってる方います?
「フォーム→確認→処理」という流れを実装したいんですが,
freeze() せず display() してフォーム表示,
freeze() して display() で確認画面表示,まではいいとして,
その後に再度 POST された時に,それがフォームから POST されたのか
確認画面から POST されたのかを上手に識別する方法があったら教えてくださいー.
hidden でステータス保持の項目を作って逃げることは出来たんですが,
せっかく至れり尽せりな HTML_QuickForm だから,
この辺りのハンドリングをうまいことやる方法があるんじゃないかと思って...
0182直リン
03/07/09 22:14ID:vAVY3pv70183nobodyさん
03/07/10 02:03ID:???試してみましたが、当方でも HTTP 経由では同様の現象が出ました。
コマンドラインで作成すると問題ありませんでした。
テスト用のスクリプトをコマンドラインで実行して出来たファイル
$workbook = new Spreadsheet_Excel_Writer('try1.xls');
と HTTP 経由で保存したファイル
$workbook = new Spreadsheet_Excel_Writer();
$workbook->send('try2.xls');
を比較すると HTTP 経由の方が 1 バイト少なく、バイナリダンプで比較する
と先頭からいくらか内容が異なっている箇所があるのと、途中からはオフセッ
トが 1 バイトずれているようでした。
とりあえずここまでしか調べてませんが PEAR General/Development ML とか
に何か載っているかもしれません。
使用したのは Excel 2000 です。
0184183
03/07/10 02:34ID:???使用したバージョンは 0.3 です。
CVS バージョンは試していません。
0185nobodyさん
03/07/10 03:08ID:???使ってます。
別に validate さえしていればどちらの画面遷移から来ようと関係ないと思うんですけど〜、、
> フォームから POST されたのか 確認画面から POST されたのかを上手に識別
の必要性が無いって事で。
PEAR::PEAR_Frontend_Webまともに動いてる人いる?
PHPKitchen( http://www.phpkitchen.com/ )見ると単に
WebInstaller.phpをlnしてるだけだと思うんだけど
実行すると
could not create lock file: failed to create stream: Permission denied
って怒られる・・・。
ロックファイル吐いてるディレクトリは/tmp/pear/cacheだと思い
パーミッション見てみたんだけど書き込み権限あるみたいだし、
一体どこに作ろうとしてるんだ・・・。
0187179
03/07/10 09:45ID:???で、私の原因は PHP のバージョンでした…。
PHP4.2.2 を PHP4.3.2 に上げたら無事できました。
0188181
03/07/10 11:27ID:???書き方が悪かったです.すみません.
「確認画面」はプログラムがデータを確認するのではなく,ユーザが自分の入れた
データを見て確認する画面,のつもりでした.
問合せフォームみたいなものなんですが,入力必須にはしないけど,
間違って空データを送らないよう一旦ユーザに確認させたい,ということで.
しかしそれにしても情報が少ないなー QuickForm は...
0189nobodyさん
03/07/10 12:22ID:???情報が少ないのは PEAR ではデフォルト。
一応こういうとこあるけど
http://enzo.bz/pearwiki/?%5B%5BPEAR%2FHTML_QuickForm%5D%5D
殴り書きでイマイチ使えない。
なるほど、理解。
どっちかっていうとどの画面遷移から受けた入力かを判別するっていうより
画面遷移も HTML_QuickForm で制御出来ないかって話な気がする。
ユーザーに入力フローを強制出来ればいいんだし。
残念ながらそういうのは知らないっす。
修行不足なのでひょっとしたら実装されてるのかも知れないけど、
オブジェクトからメソッドを抜き出してみた限りではそれっぽいの見あたらないな〜
0190181
03/07/10 15:56ID:???そうそう,そういうことですわ > 画面遷移の制御
結局,hidden 型にステータスを持たせて,今どの画面にいるのかを HTML_QuickForm とは別に
自分で制御するようにしました.
作りながら思ったのは,もしかしたら HTML_QuickForm は「フォーム→確認」までしか面倒見なくて,
その後の「処理」ページは別ページ(別ファイル)にしろ,って設計なのかも.
でも,その割には,freeze() すると submit ボタンが消えるし.謎や.
0191nobodyさん
03/07/10 18:14ID:???> でも,その割には,freeze() すると submit ボタンが消える
addElement した要素が freeze で消えたことは無いっす。っていうかそれが可能ならどういう操作か知りたいかも。
ArrayレンダラでSmarty に飛ばしてるのでレンダラー絡みの操作だとちと分からないっす。
俺は遷移画面のコントロール/分岐をやって、その中で HTML_QuickForm のパラメーター制御を行うようにしてます。
でもあまりスマートじゃないのよね、、デザパタとかもっと勉強しよっと。
0192181
03/07/10 21:25ID:???あ,そうか,これは QuickForm というよりその中の Renderer の動作なんですよね.
Default Renderer では,freeze() された submit や reset ボタンを全く描画しないようです.
ってことは,そこだけを変更したオリジナルの Renderer クラスを作って使えばいいのか.
っていうか大人しく Smarty を使えと(w
Smarty と HTML_QuickForm を配下に制御する,画面遷移をコントロールするクラスとか作れば,
全体としてかなり美しくまとまりそうですね.
0193nobodyさん
03/07/10 21:42ID:???何はともあれ原因が分かってなによりです。
freeze() で submit 要素を削るって余計な仕様に見えるんですけど、きっと別の方法がちゃんと用意されてるんでしょうね〜、、
まだまだ修行不足でつ (´・ω・`)
元々 SmartyDnymanic.php と SmartyStatic.php として ML に投げられてたので Smarty 用に書かれたレンダラってのは確か、
でも単に配列に押し込めて投げ返してるだけなので Smarty 使わなくても大丈夫でつ。
Var_Dump::display($renderer->toArray());
とか $renderer->toArray() のダンプ取ると大体分かります。
Smarty と Arrayレンダラ使って嬉しいのはオブジェクトごとにテンプレートを共通化出来る事だったり。
0194山崎 渉
03/07/15 11:08ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0195nobodyさん
03/07/17 20:28ID:???http://www.find-job.net/fj/showjob.cgi?id=16894&from=10
内容はフィットしてるんだけど、ここ大阪なので無理ぽ _| ̄|◯
0196nobodyさん
03/07/18 00:08ID:???0197nobodyさん
03/07/18 01:02ID:???stable state から速攻で仕様変更された恨み(w と、MySQL のような海外でシェアの高いドライバは安定しているっぽかったけど、
他のデータベースはテスターがあまりいなくて十分に地雷ふみふみされていなかった気配も。
結局外販しないアプリケーションだと MDB の売りである SQL レベルの互換性を手間かけて求める必要が無かったり、
XML によるテーブル定義はアバウト過ぎて使いづらかったり、テストを重ねるごとに MDB 使う理由が消えていった ^^;
十分安定して PEAR::DB とのパフォーマンス差が縮まったら使ってみたいアプリケーションではあるのだけど、まだ早いんぢゃないのかな〜
とか思いつつ楽しみにしています(w
そういえば Lukas の書いた記事が海外の雑誌に出ていて記事も公開になっていたような〜、、、
発見。
http://www.php-mag.net/itr/online_artikel/show.php3?id=283&nodeid=114
時間がなくて放置状態だなぁ。
Web+DB PRESSに記事がでるってことでかなり期待。
あの雑誌最近Javaばかりだったから
買いつつづけるか悩んでたんだけど(苦笑
0201197
03/07/18 18:25ID:???懐がツンドラ状態になった時に買うの止めて、次に思い出したように見てみると Java 一色 + 子供電話相談室が無い…
増刊かと思ったよ (/_;)
国内発の PHP の専門誌欲しいっす。ちと寂しい。
0202nobodyさん
03/07/18 18:40ID:Y7RkANYh日本語圏じゃ使い物にならないネタとかあるしねえ。
専門誌ほしいね・・・。
PHPプログラマーズマガジンがもうちょっと日本独自記事とか
ユーザー参加で何かやるとかやってほしい。
んで、MDB_Frontend使ってみた。
多少requireするファイルとか追加したら
DB一覧とかテーブル一覧とかはちゃんと表示できてるんだけど
XML出力しようとするとこけてしまう。
//Fatal error: Allowed memory size of 16777216 bytes exhausted at (null):0 (tried to allocate 40 bytes)
// in /usr/local/lib/php/MDB/Common.php on line 2808
うーん・・・?
0204nobodyさん
03/07/18 22:22ID:???MDB_Frontend のせいなのかな、、昔 1.3.0 の RC か何かスクリプト書いて試した時は XML > DB は出来たけど DB > XML はコケてたっす。
0205nobodyさん
03/07/18 23:26ID:???システムは面白いし発展性ある。めっちゃ注目してる。
PHP-Con 行きたいよ〜〜
でも内容は、、いつも微妙なのよね ^^; タイトルでいらんって思う記事が少なくない
値段も微妙だけど応援の意味も込めて php | architect では買わないよーにしてる。
初年度目標の1万部を達成しても 1000万、そこから翻訳や本家への支払い考えると…
継続的なコンテンツビジネスって大変やね。
0206koyhoge
03/07/19 01:11ID:???あんまし入門記事じゃなくなっちゃったので、その辺を希望してた人はごめんなさい。
サンプルコードはたくさん載せたけど、メソッドをひとつひとつ解説するようなことはしてないです。
実はこの記事を書くために本格的にMDBのコードを読み込んだんだけど、
イヤーよくできてるわホントに。
0207nobodyさん
03/07/19 01:29ID:???ライターさんが自分で最も価値が高いと思うアウトプットをくれると私的には一番楽しいっす。
媒体の性格もあると思うので難しいのかも知れませんが。
> 実はこの記事を書くために本格的にMDBのコードを読み込んだんだけど、
> イヤーよくできてるわホントに。
とか もっと語って語ってって感じっす。発売楽しみにしています。
PHPプログラマーズマガジンで一番読んでいるのは
Tips &Tricksだったりする(^^;
なんかこう、自分が求めるものと外れてるんですよねぇ・・・。
>>206
本人降臨ですか(笑
記事の方楽しみにしてます〜。
メソッドごとの説明とかは本家マニュアル
( http://pear.php.net/manual/en/package.database.mdb.php )
にも載ったし別にいいんじゃないかと。
それにしても、発売日遠いです(苦笑
そろそろ使おうと思ってるんだけど、
「MDBならでは」って部分を知りたい・・・
自己レス。
本家マニュアルに載ってるのはまだMDB_Commonだけなのね。
もうちょっと情報がほしい・・・。
0210nobodyさん
03/07/19 21:16ID:???http://www.backendmedia.com/MDB/docs/
http://www.backendmedia.com/MDB/docs/tutorial.html
http://www.php-mag.net/itr/online_artikel/show.php3?id=283&nodeid=114
http://enzo.bz/phpdoc/pear/mdb/datatypes.html
http://enzo.bz/phpdoc/pear/mdb/xml_schema_documentation.html
http://enzo.bz/phpdoc/pear/mdb/
enzo.bz ドメインのドキュメントはバージョン遅れてる (´・ω・`) 他の場所見つけるか自分で PhpDocumentor 動かせば無問題
0211210
03/07/19 21:20ID:???もう長いこと情報集めるのサボってるので。
0212nobodyさん
03/07/24 09:37ID:???PEAR API docs
http://phpdorks.net/docs/api/
http://marc.theaimsgroup.com/?l=pear-general&m=105828607323612&w=2
0213nobodyさん
03/07/24 09:50ID:???少し前のことなので状況が変わっているかもしれませんが、以前に Lukas さ
んが同様のことにお答えになっておりまして、現時点の解としては PEAR DB
との違いを PHP Magazine の記事を参考に認識した上で PEAR DB のチュート
リアルを読めということです。
http://marc.theaimsgroup.com/?l=pear-general&m=105174372631369&w=2
0214nobodyさん
03/07/27 05:34ID:???PEAR::DB + Metabase なので PEAR::DB 代わりに使うには
> 違いを .. 認識
すればokですね、、
つまらない事聞きました。多謝です (_ _)
どもっす。
時間をかけてじっくり読み解こう・・・。
それはそうと、Auth1.2.2でましたね。
変わっているところをチェック中・・・。
0216nobodyさん
03/07/29 14:27ID:???DBつかうとコネクション余計に張らなきゃならんし、
start()でlogin用画面function呼ばなきゃならんとかいうのも気に入らん。
0217nobodyさん
03/07/29 21:12ID:???こんな感じでいけませんか?
DB:
$dbh = &DB::connect(...);
$auth_options = array(
'dsn' => $dbh,
'table' => ...,
'cryptType' => ...
);
$auth = new Auth('DB', $auth_options, 'showLoginForm', true);
$auth->setSessionname(...);
$auth->start();
MDB:
$dbh = &MDB::singleton(..., ...);
$dbh->setDatabase(...);
$auth_options = array(
'dsn' => $dbh,
'table' => ...,
'cryptType' => ...
);
$auth = new Auth('MDB', $auth_options, 'showLoginForm', true);
$auth->setSessionname(...);
$auth->start();
0218nobodyさん
03/07/29 21:20ID:???ちょっと前に Auth のメンテナが交代されたようですので今後に期待しましょ
う。
http://marc.theaimsgroup.com/?l=pear-general&m=105764685524935&w=2
0220nobodyさん
03/07/31 17:41ID:???$db->getAssoc($sql);
とかしたい場合、
$sql = $db->executeEmulateQuery($stmt,array($id));
とかでrealqueryを取得してるんですが、
executeEmulateQuery()ってprivateなんですね。
今はいいけど、PHP5とかになったとき、呼べなくなったら困るなぁ。
0221nobodyさん
03/07/31 22:24ID:???CVS HEAD の DB/DB/common.php の getAssoc() を見てみると、
function &getAssoc($query, $force_array = false, $params = array(),
$fetchmode = DB_FETCHMODE_ORDERED, $group = false)
{
settype($params, "array");
if (sizeof($params) > 0) {
$sth = $this->prepare($query);
if (DB::isError($sth)) {
return $sth;
}
$res = $this->execute($sth, $params);
$this->freePrepared($sth);
} else {
$res = $this->query($query);
}
となっていますので、
$query = 'SELECT ... FROM hoge WHERE ... = ? AND ... = ?';
$data = $dbh->getAssoc($query, false, array('...', '...'));
でお望みの動作になるかもしれません。prepared query が破棄される分効率
悪くなると思いますが。
0222nobodyさん
03/07/31 23:35ID:???0223山崎 渉
03/08/02 02:26ID:???( ^^ )< ぬるぽ(^^)
0224ぼるじょあ ◆ySd1dMH5Gk
03/08/02 04:56ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0225nobodyさん
03/08/06 15:45ID:???オープンソースな PHP は商用 DB とは相性よろしくないのかしら。。。
0226nobodyさん
03/08/06 16:12ID:???恐らく MySQL と PostgreSQL 以外はほとんどテストされていないのでしょう。
どこがどのように動かないのでしょうか?
バグ等は見つけたらとりあえず報告しておくのが吉です。
友人に教えて使ってるのを見たんだけど(自分で使ってる時間が無く・・・(苦笑
SmartyArray使うとどうも面倒そう。
特にテンプレートファイル側見るとひたすら
{$form.address.label}<br>{$form.address.html}
とか並んでいてテンプレートの意味あるの?という感じ。
ならQuickForm使わなきゃいいじゃん、って話だけど
やっぱり値チェックとかは強力だと思うし・・・。
Smartyのプラグイン作るとかですかね?
0228225
03/08/12 13:39ID:???oracle がカラム名とかを大文字で返すのがしばしば問題な模様ですね.
まず DB_oci8 の options が 'optimize' => 'portability' でないと動かないってのと,
その状態でも DB::TableInfo() が大文字で返すので createTables.php が動かない,とか.
でも,しばらくいじってみたら,「ほとんど動かない」ってほどでもないようです.
上記の点をクリアすれば基本的な部分はだいたい動きました.
バグとか報告したいんですが,どこにどう送ればいいものやら.
やっぱ英語書かなあかんですかね.読めるけど書けない典型的日本人.
0229226
03/08/12 15:48ID:???それでしたら CVS HEAD へのパッチの形にして PEAR developers list
に投げるといいでしょう。パッチは本文に貼っておけば OK です。
英語は趣旨が伝われば十分ですので簡潔なもので結構だと思います。
Subject: [PATCH] ...
代わりに投げてもいいですけど、私の名前をコミットログに入れられたりしま
すのでなるべく本人の方が良いと思います (笑
0230225
03/08/12 21:31ID:SbJBYfdHなるほど,ありがとうです.
今の仕事が片付いたらその間に見つけたのをまとめて送ってみることにします.
あぁー getLinks() もおかしいな.
_link_loaded が true になる条件を満たしてても true にせず return してる線がある...
0231あさがお
03/08/12 22:10ID:NKV0QIKc0232226
03/08/13 16:00ID:???一部 PHP Bugs に上がってきました。
http://bugs.php.net/bug.php?id=25067
225 さんですか?
0233山崎 渉
03/08/15 22:36ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0234nobodyさん
03/08/19 23:12ID:???た。 Solaris ユーザはほとんどおらんのか...
http://pear.sakura.vg/index.php?%5B%5BWAF%2FCMF%2FCMS%5D%5D
ところでページ上部のバナーが見つからなくなっているようです。
お疲れ様です〜
>ところでページ上部のバナーが見つからなくなっているようです。
どうやら相手サイトが原因の模様。
バーチャルドメインの設定間違えたか
DNSの設定間違えたか。
0236nobodyさん
03/08/23 13:40ID:???# pear install apd
(snip)
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
/tmp/tmpmW3Ano/apd-0.4p2/ltconfig: Can't open /tmp/tmpmW3Ano/apd-0.4p2/ltconfig:
No such file or directory
configure: error: libtool configure failed
`/tmp/tmpmW3Ano/apd-0.4p2/configure' failed
ってなってしまうんです
libtoolだとかってよくわかんないんだけども、これってどこに問題があるんでしょうか。
autoconf,automakeだとかは新しいの入れてるし・・・
つか、そもそもltconfigって誰が作るものなんですか?
OSも書いた方がいいと思う。
うちのFreeBSDだと最初から入ってるlibtoolが1.3系だから
configureでひっかかる。
圧縮されてるファイルを拾ってきて展開。
phpizeしてconfigure開いて「--no-verify」を削除後、
configure -> make
で、make通るけど。
0238236
03/08/24 05:20ID:???FreeBSD4.8-RELEASE-p3
libtool 1.5
automake 2.53
autoconf 1.5
そんな感じです。
全部portsで入れてます。
--no-verifyで引っかからなかったのは、
やっぱりlibtoolのバージョンっぽいですね。
うーん、理由が見えないなぁ。
configureの中身見てみるとよさげだけど。
力になれず申し訳ない。
話変わって。
待ちに待ったWEB+DB Press16買ってきました。
PEAR MDBの解説、結構しっかり載ってます。
// さりげなくbenchmarkクラス使ってるところが流石というか
残念なのはXMLベースのスキーマについて
例が無かったこと。
しばらくはよりパフォーマンスが高いDBクラスとして布教活動かなぁ・・・。
あと、Postgresでのコネクションプールとか
興味惹かれる記事が多かったので久々に買ってよかったと思ったよ。
0240nobodyさん
03/08/26 14:25ID:???0241nobodyさん
03/08/26 14:59ID:???www.php.netはミラーがある(jp.php.net)からいいんだけど、
pearのほうはそういうの用意する予定ないのかねぇ・・・。
今の状態だとpear.php.netが落ちるとそれで終わりだから非常に怖い。
0243nobodyさん
03/08/29 01:19ID:???エッジの宮川氏のRSSのところでもさり気なくPEAR使ってましたな。
XMLといえばSimpleXML、チョー良いです。
http://www.sitepoint.com/article/1192/16
な感じ。
なかなか認知されないけど、
このまま少しずつでも広まっていけばいいよね。
海外みてるともっと話が盛んな気がする。
ちょっと質問。
Date_CalcクラスのnextDayOfWeekメソッドとかの第一引数、
$dowってなんだろ?
0246245
03/08/29 14:02ID:???あー、なるほど。
どもっす。
また時間見つけてwiki更新しときます。
PHPUnit1.0.0 alpha1でたとおもったら、
PHP5でないとインストールできないんだね。
LiveUserの新バージョンも追いかけたいけど、
時間足りない・・・。
PEAR::MDB+PostgreSQL7.3.4という構成で、
最初のうちはいいんだけど何回か繰り返してると
突然「MDB Error: unknown error」と言われ接続不能に。
一度エラーが出るとpostgresを再起動するまででるっぽいです。
(あと、エラーオブジェクトをvar_dumpしてみたら
「Setup: could not execute BEGIN」って言われています)
接続数の関係かな?と思い、上記エラーが出るようになってから
PEAR::DBで同じDBに繋ぎにいったら、こちらは正常に接続出来ました。
原因、なんなんでしょうか・・・。
0249nobodyさん
03/09/10 09:53ID:???ひとつ推測できるのはトランザクションがアボートしている状態です。
その状態で何かクエリを発行するとすべて無視されますので、 MDB 周りのト
ランザクション処理が原因かもしれません。
ちょっとコード追ってみた。
接続するときにtemplate1データベースに接続にいってるのが原因っぽい。
自分が接続したいDB名がhogeで、
hogeに対してpconnectしているとすると
・pg_cmdTuplesが使えるか確認
・使える場合、template1データベースに接続しにいく
・が、hogeに対しての持続的接続により接続数が足りない
・接続失敗
って感じらしい・・・。
というか、これはいったい何をしたいのだ?
pg_cmdTuplesって古い関数名だし・・・。
これってAffectedRowsとれるかどうか判断してるだけなのだろうか。
しかしそれを判断するのに何でわざわざtemplate1に接続しにいってるんだろう。
とりあえず適当に修正・・・。
話はわかりますが、
pear.php.netの構成が少し変わって日本語のドキュメント消えてますね。
このあたりの動向ってどうなってるんだろうか。
0252249
03/09/10 12:58ID:???> ・が、hogeに対しての持続的接続により接続数が足りない
というのはちょっと意味がわかりません。 PostgreSQL 側の接続数制限なのか
pgsql.so の接続数制限なのかのいずれかだと思いますが。
いずれにも該当しない場合は持続的接続を行っている Apache プロセス内で別
の接続を行うことは問題ないはずです。
ということではなかったらごめんなさい。
日本語ドキュメントについては元のドキュメントの構成が変化しているのでそ
れに追随できていない状態だと思います。今は廣川氏ひとりでがんばっている
状態です。ここの方々で協力できる人がいれば CVS アカウントを申請して参
加して下さい。とはいっても皆さん忙しそうですね...
ちょっと自分でもわかりづらい書き方だなと思った(汗
すみませんです。
>接続数が足りない
postgres側の制限(今はpgpool使ってるからそっちの制限)ですね。
16接続出来るように許可している状態で、
hogeデータベースだけで16接続pconnectしているから
template1に接続しにいっても出来ない状態。
>今は廣川氏ひとりでがんばっている状態です。
うあ、それは大変だ・・・(汗
協力出来ればいいんですが、ちょっと今私生活のほうが
ばたばたしていて手が出せない状態(苦笑
0255249
03/09/10 21:49ID:QKM7iw+wある程度の部分ごとに訳がある方が良いですが、訳があるだけましという現状
では役立つのではないでしょうか。
後々は対訳表やルールが必要になると思いますが。こんな感じで。
http://cvs.apache.jp/docs-project/
0256nobodyさん
03/09/15 19:03ID:HzcwV9T4なんか入力→終了なら簡単にできるけど間に確認はさむと難しい。
0257181
03/09/16 12:15ID:???少し前に同じようなことで悩んだんですが...
結局,HTML_QuickForm だけではうまくいかない,という結論に達しました.
で,hidden エレメントでフォームの遷移をステータス管理して,
> if( validate() ){
> if( 確認から POST された ){
> process();
> } else {
> freeze();
> }
> } else {
> // フォーム画面表示
> }
って動作をするようにしました.
でもって,HTML_QuickForm オブジェクトに寄生してこういう管理をしたり「次へ」「戻る」ボタンを追加したりする別のクラスを作ったりしました.
これ使うと,使う側のコードはスマートだけど,そのクラスのコードがとってもダーティ(w
最近になって HTML_QuickForm_Controller という PEAR クラスも出てきたんですが,
これはマルチ画面フォームの制御には向くんですが,同一フォームの確認画面には向いてないみたい.
0258nobodyさん
03/09/16 20:37ID:bh8H+vxmお、ありがとう。なるほど、分かりました。
「次へ」「戻る」クラスのサジェスチョンもキボンヌ!
0259189
03/09/17 15:10ID:???HTML_QuickFrom_Controller なんてあったとわ。今度見てみまつ。情報ありがとう。
自分は $form->validate() しちゃうと addRule が評価されるので
$form->addElement('submit', 'preview', 'ぷれびゅ〜');
とか submit オブジェクトの押し下げで遷移状態が判定できるようにしといて
遷移状態判定 -> (必要なら) validate() しています。
if (!empty($_POST['preview']))
{
// snip
if ($form->validate())
{
if 文の中では画面遷移状態の判定だけ行って $mode に preview や entry といった値を設定し後で switch 文で分けてます。
あまりスマートぢゃない、、
何か勘違いしてたら指摘したってください。
ところで
$var = $form->getSubmitValue('obj_name');
if (!empty($var))
だと判定出来るのに
if (!empty($form->getSubmitValue('obj_name')))
だと parse error, unexpected '(', expecting ')' になってしまうのは一体、、
getSubmitValue の存在意義も今ひとつ分かってなかったりします。 $_POST ぢゃダメなのかよ、みたいな。
0260nobodyさん
03/09/17 15:16ID:???関西で PEAR や Xoope ネタ握ってる人、少なくないのにちと寂しいです
昨年はまつもとさんが Ruby 公演を打って撃沈された人が続出、
OS+FW 以降、某メールマガジンの某連載が Ruby 一色に染まったりとか、、
影響力のある良い舞台だと思うので布教にはもってこいですよぅ
|_・) とか呟いてみるテスト
0261avx
03/09/18 02:30ID:???中・大規模のPHPを使ったWebアプリ開発には、
PEARは欠かせませんね。
MVCモデルでModelとControllerは全てクラスで設計/構築し、
PHPUnitを使ってXPを実践しました。
ドキュメント化にはPHPDocは重宝しますしね。
DBなどボトルネックとなるものに対してはCacheが
非常に有効です。
DBキャッシュでSQL結果をキャッシュしたり、
Output(Compression)キャッシュで生成した出力をキャッシュしたりするとかなりパフォーマンスがあがります。
Logクラスを継承した独自のログクラスを作ればかなり便利です。
あとPEARのコードみるとデザインパターンとかが実践されているので、とても良い勉強になりますよ。
PEAR SOAPは開発時のデバッグが大変ですが、ちゃんと動きます(笑)
随分前にPEAR SOAPを使ってつくった課金システムが10万/月くらいこなしてるし。
0262nobodyさん
03/09/18 03:57ID:???雑誌や BOF を利用して是非話を伺いたいところ。
開発スタイルと PEAR のつかいどころがとてとて興味深いです。
PHPUnit は挫折しました。検証コード書く手間が、、
PhpDocumentor は使ってますがおざなり。
企業規模は存じませんが、SOAP っていうかそもそも Webサービスで利益出してるってのが興味深く。
PEAR::Log ってのも知りませんでした。フレームワークなのか、、LiveUser と使い比べてみたいかも。
中・大規模で使えるってのも興味深いです。
PHP 自体、今安心して使えるのは中規模までとか思ってましたので (PHP-load-test でみんな頑張ってくれてますが)
私は PEAR は専ら開発コストを落とし質を保つために使っています。
一人で、繰り返し押し寄せる自社案件をこなす業態に問題があるのかな、、
# 頑張って開発しても _| ̄|◯ 営業さんが目標達成率 2% とかやってくれて
0263nobodyさん
03/09/18 14:29ID:???empty( ) は言語構造であり,変数以外のものに対して使用しても意味がない,と書いてありますね...
> ttp://www.php.net/manual/ja/function.empty.php
> if ((bool)($form->getSubmitValue('obj_name')))
だと動くのでしょうかね.
// 以下オフトピ
perl やってたせいか,キャストって概念自体がいまいち好きになれない...
が,ひとつ発明(?)した使い方で,
true/false を引数で受け取るメソッドをコールする時に意味がわかるよう
> $DataObject->find( (bool)'fetch first result' );
なんて書き方をして,読む時に「この true はどういう意味だっけ?」とならないようにしてますが,却って読みにくい気も少ししてきた(w
0264259
03/09/18 18:33ID:???ありがとうございます。
0266259
03/09/19 03:58ID:???PHP ってマニュアルの出来いいっすよね。
あと PEAR なら Read The Source, Ruke.. とか。
0267nobodyさん
03/09/19 13:52ID:???ソースのコメントにすら説明が書かれてないですね。解読するしか
ないのか。。
0269nobodyさん
03/09/19 14:11ID:???HTML_QuickForm は Read The Source しても意味わかんねーことが多いっす(w
ほんの2〜3ヶ月前までは PEAR のマニュアルにも載ってなかったんですよね.
ひたすら docs を CVS から見て勉強したりしました...
> ttp://cvs.php.net/cvs.php/pear/HTML_QuickForm/docs
example4 辺りが,もっともシンプルでとっつきやすいサンプルになっていると思います.
0270nobodyさん
03/09/19 14:24ID:???今はpearのマニュアルかなり整備されてるみたいでした。
メソッドごとの解説とかあるし。かなり便利になったん
ですね。ただ量が膨大です。
テーブルを使わないでフォームを出力したいんですが、こ
れは rendler ってのを使えばいいんですかね。しばらくは
マニュアル解読に時間を割いてみようと思います。きっと
それだけの価値があると信じつつ。。
教えてくれたアドレスも今から見てみますね。
0272nobodyさん
03/09/19 21:28ID:???あと、解ってる人の解ってる人へのメモで可用性イマイチな気がするが
http://enzo.bz/pearwiki/?%5B%5BPEAR%2FHTML_QuickForm%5D%5D
とか。
本家 ML 漁れば結構 HTML_QuickForm 絡みの質問は出てくる。
0273nobodyさん
03/09/20 03:23ID:???setElementTemplate() を使ったサンプルが docs に入ってるのでそれを参照すると良いです.
デフォルトの Renderer なら,HTML_Template_IT 風に指定できますね.
> ttp://cvs.php.net/co.php/pear/HTML_QuickForm/docs/renderers/labels-default.php?r=1.1
わかりやすいのはこの辺でしょうか.
BEGIN〜END のブロックは数種類あって,
・required → addRule() で required を設定した項目の時だけ表示されるブロック
・error → validate() でエラーになった時に表示されるブロック
・label_2 → addElement() する際に $label に string でなく array を指定した際に,2番目の文字列が入るところ
って感じですね.
...こうやってひとつひとつをサンプルや各 Web や試行錯誤で会得していかないとならないのが残念なところ.
■ このスレッドは過去ログ倉庫に格納されています