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

Pear

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
ってどうよ。
056755404/07/01 22:23ID:???
>>566
チョト言い方悪かった。
headerエレメントというより、form全体のfrozen、javascript、attributes等と
同列の配列に、各エレメントの配列が並んでいるんですよ。
んで、素のtoArrayをみれば、ちゃんとエレメントは一つ掘っていました。
ちょっと何の為にSmarty用のレンダラが用意されているのか疑問。
正しい活用方法があれば教えて欲しい。
それか、toHtmlを書き直してごっそり押し込む方が楽が出来そう。
0568nobodyさん04/07/01 22:54ID:???
>>567
おそらく全く同じ疑問で悩んでる人発見
同列に並んでるからエレメントをループして表示させようとすると
いちいちfrozen、javascript、attributesを判断して抜かないとダメじゃん、
ってことですよね

結局俺もこれを解決する事ができずArraySmartyレンダラを諦めて
Arrayレンダラでやってます

ArraySmartyレンダラでこの問題を解決する方法ないもんでしょうか
自前でレンダラ書き直した方が速いのかな・・・
0569nobodyさん04/07/01 23:21ID:???
>>562
/lib/php/HTML/QuickForm/Renderer
にW3Cなモノを用意するとか。
0570nobodyさん04/07/02 03:14ID:???
ん〜、
is_array($element) && isset($element.html)
とかやってたかも
スマートじゃないですか、、そうですか |出口| λ............

昔あった SmartyDynamic レンダラとかはそういう仕様だった気がする。
057157004/07/02 03:18ID:???
そういう仕様ってのは
> んで、素のtoArrayをみれば、ちゃんとエレメントは一つ掘っていました。
のことね。

> ちょっと何の為にSmarty用のレンダラが用意されているのか疑問。
ってのは Smarty だけじゃなく、他のテンプレートエンジンを考慮した時に生きてくるんじゃないかなと思ったり。

# 酔いどれ中につき、いろいろと失礼。
0572nobodyさん04/07/02 09:56ID:???
自分は Smarty でなく Sigma & (ITStatic or ITDynamic) 使ってるんで外してるかもだけど,
ArraySmarty ってソースにも書いてある通り ITStatic をベースにした static レンダラだから,
{section} で回せるものを吐くようにはそもそも出来ていない(使い方が違う)ってことではないかと.

テンプレートにエレメント名の項目をずらっと書いておけば accept() 一発でいけるわけで,
汎用テンプレートを使えるようにするには SmartyDynamic のようなものが必要,と.
どうして SmartyDynamic がなくなって代わりが用意されなかったのかは謎ですが.
057355404/07/02 10:59ID:???
みなさんいろいろどーもです。

今form入力ページがたくさんある業務用サイトを作っていて、
数ページ程度ならエレメントをずらずらと並べるけど、なんだか
QuickFormの利点一つ(サンプルスクリプトを動かしてみたときの感動)が
スポイルされる気がするし、数十ページになるとループで回せるところは
テンプレート側で回したいので、現段階での結論は、汎用テンプレートを
用意しViewクラス内で素のQuickForm::toArray()で得た変数を元に
form部分をくみ上げて、メインのテンプレート内に押し込むことにします。

きっともっと便利な方法があるかもしれないけど、これだけ大きなクラスを
掌握する頭も時間もねぇー。

お付き合いありがとうございました。
0574nobodyさん04/07/02 11:16ID:???
> Viewクラス内で

|_・) 何かのフレームワークですか、、もじゃ?
0575nobodyさん04/07/02 11:29ID:???
お疲れさんです.
確かにそういう用途だと Dynamic レンダラじゃないとやってられんですね……

今の作業が終わって手が空いたら SmartyDynamic を新たに作ってしまうと後が楽かもです(w
ArraySmarty を継承して,toArray() をうまいこと自作すれば,意外に簡単にいけそうな気がする.
057655404/07/02 15:23ID:???
スマソ、覚書&質問。
addRuleに独自のものを追加するには、
QuickForm::registerRule()で独自ルールチェック関数を追加する。
最終的にはcall_user_func()を使っている。
addRuleの第4引数はcall_user_funcの第3引数に渡るので、
汎用的なルールチェック関数も書ける。

んだが、QuickForm::registerRule()はViewクラスにあって、
ルールチェック関数はDBに問い合わせる都合上Modelクラスにあって、
スタティックコールできないメソッドの場合、どうすればいい?

強引にViewクラス内から
$this->form->registerRule('isUsed_Check','callback','isUsed_Check',&$GLOBALS['model']);
として、Modelクラスのメソッドを呼び出すことは出来て、結果正しく動いてますが、
こんなWarningが出ます。
Warning: Call-time pass-by-reference has been deprecated - argument passed by value;
If you would like to pass it by reference, modify the declaration of [runtime function name]().
If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.
However, future versions may not support this any longer. in /usr/local/apache/htdocs/************* on line 34

とりあえず、.htaccessに php_flag allow_call_time_pass_reference On と書けば
Warningは出なくなりますけど、こんなんでいいのか?
0577nobodyさん04/07/02 15:39ID:???
やり方違うんで参考になるかどうか知らんけど
自分は QF を extends して CommonForm.class.php を作成し、registerRule はそこでやってる
0578nobodyさん04/07/02 15:45ID:???
>>576
ってゆーか、エラー内容だけ出されても、、
どこのフレームワーク使ってるの?

助言出来る/出来ないは別にして興味あるなぁ
0579nobodyさん04/07/02 16:06ID:???
>>576
PHP5 で pass by reference が標準になることを考えれば,
allow_call_time_pass_by_reference が true なのが邪道とは言いかねると思う,個人的には.

で,そのフレームワークの構造がわからないとなんともだけど,
DB_DataObject が DB クラスを singleton 的に保持するように,
$GLOBALS をうまく使ってやれば,static に呼んでも動作するチェックコードを書けるのではないかと.
058055404/07/02 16:17ID:???
>>577-579
レスどーもです。
どこかのフレームワークを使っているとかじゃないです。
独りでチマチマやってます。
独学なんでやり方そのものが怪しいのかもしれんが、
siteAを作る場合、それようのVIEWとMODELクラスを作りますが、
必要最低限のCommonViewとCommonModelはあって、それぞれextendsしてます。
QFは今回初めてだし、Form入力の無いページもあるので、
必要なときにだけ生成させようかと。siteA_View->Qfrom
なんで、siteA_View->Qfrom->registerRule() でルールチェック関数に
siteA_Model->isUsed_Checkを指定したいということです。

ご理解いただけましたでしょうか?

> DB_DataObject が DB クラスを singleton 的に保持するように,
> $GLOBALS をうまく使ってやれば,static に呼んでも動作するチェックコードを書けるのではないかと.

うげ、意味がわかんね。orz
0581nobodyさん04/07/02 16:54ID:???
>>580
あーなるほど.

とりあえず,
関数名のトコに 'isUsed_Check' でなく array( &$GLOBALS[ 'model' ], 'isUsed_Check' ) を指定すると,
正しくそのオブジェクトのメソッドを叩くようになるんではないでしょーか.
<?php
$this->form->registerRule('isUsed_Check','callback',array( &$GLOBALS[ 'model' ], 'isUsed_Check' ));
?>
みたいな.

でも QF の Rule はある意味でビジネスロジックだから Model に入るのは良いとして,
それなら Model が QF 全部を生成し,それへの参照を View が持つようにする方が良いのではないか,とか,
漠然と思いましたです.
058255404/07/02 17:35ID:???
>>581
あーそっかー。
QFのコードを追っかけながら書いてたから、バカ正直に第4引数を使うことしか頭になかった。
と、言い訳を言ってみたが、あったまかてーわな。
allow_call_time_pass_referenceをoffにしてもエラーが出なくなりました。どうもです。
QFをModelで生成するかどうかは、もう少し様子を見ます。Smartyとの連携もあるし。

あと1点気にしているんですが、そもそもあるメソッドから別クラスのメソッドを呼ぶのに
call_user_func(&$GLOBALS[ 'class_name' ], 'method_name' ); というように、
$GLOBALSを使うのって「あり」ですか? てか、これ以外の手法って知らないんですけど。

1.あり
2.別の正しい方法がある
3.別クラスのメソッドを直接呼び出すのがそもそも邪道。
4.スタティックコールできるように組む。
5.他

独学なんで、ナニが王道なのか気になる。
0583nobodyさん04/07/02 18:06ID:???
call_user_func との絡みは別として,
あるクラスのインスタンスを共有して使いたい時に $GLOBALS を使う例は PEAR にも多々あります.

例えば DB_DataObject は内部で DB クラスのインスタンスを使うんだけど,
$GLOBALS[ '_DB_DataObject_connection' ] みたいのに DB オブジェクトを入れておいて,
DB_DataObject クラスの各インスタンスから共通で使用したりしてます.

ただ,$GLOBALS の乱用はコードを超見にくくするので,
上記のように特殊かつ限定された利用法に留めるのがよろしいかと.
   
0584 ◆AngelH/kMI 04/07/03 02:02ID:???
>>583
話それるけど、ちょっと気になったので。
DB_DataObjectのインスタンスを共通で使うのは何故でしょ?

DB_DataObjectで使っているPEAR::DBのインスタンスはGLOBALSに保持して
中で共通の物使ってるからあまり意味ないような気が・・・。

(DB_DataObject::debugLevel(5)とすればわかるんだけど、
既に一回DataObject(からfactoryした場合も)を使った後は
既に生成済みのDBインスタンスを使ってます。
デバッグメッセージには「Cached Connection」とかそれっぽく出るはず)
0585nobodyさん04/07/03 04:10ID:???
>>584
DB_DataObject の複数のインスタンスがひとつの DB のインスタンスを共有する,
って意味のことを書きたかったんで……
おっしゃることと同じ意味のことを書きたかったんですが,文が変でしたかね.すんまそん orz

自作の DB_DataObject 拡張クラスで _connect() を override して ALTER SESSION したりしてるんで
その辺の動作は理解してるつもりですが,説明するための文にするのって難しいですね orz
058655404/07/03 09:17ID:???
>>583-585
なんどか読み直しているうちに>>579の意味(手法)がなんとなくわかってきた。
DB_DataObjectを細かく見ていないので、勘違いしているかもしれませんが。
>>582に対して反論はなさそうだけど、汎用性を考えれば>>582の4ってことかな。
いろいろどーもでした。m(_._)m
0587 ◆AngelH/kMI 04/07/03 09:57ID:???
>>585
ああ。
なるほど。

ちょっと意地悪な言い方でした・・・。
すみませんです(苦笑

>>586
多分、DataObjectのソース読んだ方が理解早いですよー。
058855404/07/03 10:20ID:???
あああ、、、
Rule/Callback.phpのvalidate()は、registerRuleの第4引数がある場合のみ
call_user_funcで呼び出していて、なければ直接呼び出しているようです。
だから、
$this->form->registerRule('isUsed_Check','callback',array( &$GLOBALS[ 'model' ], 'isUsed_Check' ));
だとFatal errorがでる。やっぱり、
$this->form->registerRule('isUsed_Check','callback','isUsed_Check',&$GLOBALS['model']);
こうかかないと、ダメみたいっす。
やっぱstaticで呼び出せるようにしないとあかんのか。
そう思いつつ、今回はこれで逃げる。
058955404/07/03 10:24ID:???
おっと。
>>587
多分そうでしょうねぇ。
急がば回れ、しかし解っていても回れない。
一気に詰め込むと頭がオーバーフローしそうだ。orz
059055404/07/03 16:03ID:???
何度もスマソ。
素のtoArray()は添字配列なんで、単純にループさせる場合はそれでいいが、
ループで済まされない場合は属性(name)を使った連想配列の方が、
やっぱ何かと都合がいい。
そんなわけで、エレメントだけ一つ掘った配列になるよう
Smartyレンダラ(ArraySmarty)を継承して作ってみました。
<?php
require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
class HTML_QuickFrom_Renderer_ArraySmarty2 extends HTML_QuickForm_Renderer_ArraySmarty{
    function _storeArray($elAry)
    {
        if ($elAry) {
        $sKeys = $elAry['keys'];
        unset($elAry['keys']);
        // where should we put this element...
        if (is_array($this->_currentGroup) && ('group' != $elAry['type'])) {
            $toEval = '$this->_currentGroup' . $sKeys . ' = $elAry;';
        } else {
            $toEval = '$this->_ary[\'elements\']' . $sKeys . ' = $elAry;';
        }
        eval($toEval);
        }
        return;
    }
}
?>
[\'elements\']を追加しただけですけどね。とりあえずこれで動いた。
059155404/07/03 16:11ID:???
そうそう、>>590はtoArray()を確認しただけで、
他のメソッドまでは確認してません。あしからず。
059255404/07/03 16:30ID:???
連投しているとウザがられそうだが...
typoしてました。
×class HTML_QuickFrom_Renderer_ArraySmarty2 extends HTML_QuickForm_Renderer_ArraySmarty
丸class HTML_QuickForm_Renderer_ArraySmarty2 extends HTML_QuickForm_Renderer_ArraySmarty

あと、やっぱりこれだけだと、getElement()等が使えません。orz
0593nobodyさん04/07/06 19:41ID:???
上の一連のHTML_QuickFormのレンダラの問題、
自分の使いやすいようにレンダラ修正すりゃいいっちゃいいんだろうけど、
正直これくらいはパッケージ側でクリアにして欲しいよなあ
せっかく凄くいいライブラリなのにここだけが微妙に融通利かないってのが歯痒い
作者さんにメールすれば考慮してくれるもんですかねぇ。。
059455404/07/06 19:50ID:???
うーんと、続報?
とりあえず、>>590のコードは使えます。(typoはおいといて)
レンダラ側ではtoArray()しか使ってないけど、QuickFrom側は
addGroup,addGroupRule,getElement,createElement等は問題なし。
よくよく考えれば、レンダラ側を弄っただけなんで、本体は関係ないのよね。
Group化が出来れば、自分が作っているフォームならほぼテンプレート側で
ループさせるだけで済みそうです。
0595nobodyさん04/07/06 22:18ID:???
各種レンダラの操作を統一する過程で Dynamic が消えたんじゃないかと予想してみる
0596nobodyさん04/07/07 10:50ID:LF3NmbpZ
QuickFormのRule検証でSubmitボタンを複数用意して、ボタンごとに動作を変えるっ
てことはできないんですかね?
極端な例では、ボタンAをクリックしたときにはvalidateするけど、ボタンBをク
リックした時にはvalidateしない。みたいなことです。
Documentを見てみたものの、そういった情報が見当たらなかったので。
何か情報があったらお願いします。
0597nobodyさん04/07/07 11:25ID:???
>>596
if (isset($_REQUEST('element_name ...
0598nobodyさん04/07/07 17:43ID:MesltrHS
>596
すみません。ちょっと言葉が足りませんでした。
client側でのRuleチェックをしようかと思っているんですが、
何がうまい方法はないかな、と考えているんです。
Ruleをカスタマイズしようか、と思ってのですがもしもQuickFormで
うまい方法があれば、と都合のよいことを考えています。
0599nobodyさん04/07/07 19:31ID:???
>>598
Ruleのclientで吐き出してくれるjavascriptコードに満足いかないなら
もう自分でjavascript書いちゃった方がいいんじゃないかな
HTML_QuickFormのclientチェックはあくまで付加的なものかと
0600nobodyさん04/07/08 11:54ID:???
JavaScript 切ってる人は今でもそれなりにいそうだし,
client side のチェックは,全く動かなくてもサイトとして完動するものじゃないと,ね.

で,submit ボタンにしないで,button オブジェクトに自前で onclick に JavaScript 指定し,
その中で,onSubmit を無効にしてから form.submit() するようにすれば,
期待の動作をするのではないだろーか.
0601nobodyさん04/07/10 08:38ID:???
PEARマニュアルの日本語訳に参加したいんですが
どうすればいいんですかね。
マニュアル読んでも何も書いていないし。
ご存じの方教えてください。
0602nobodyさん04/07/10 08:38ID:???
PEAR::Calendar無駄にでかすぎるような気がするんですが
モース腰シンプルな可憐d−あクラスないかな。
0603nobodyさん04/07/10 08:54ID:???
pearマニュアル文字化けする。
IE糞だな。
operaも糞だし。
糞だらけだ。
0604nobodyさん04/07/10 11:25ID:???
>>601
ひとまず php-doc ML に参加するよろし
0605nobodyさん04/07/10 11:27ID:???
>>601
先ずは[PHP-doc ML]に参加する。で、アーカイブで流れを見る。
# [PHP-doc 213]のツリー辺りからで良いと思う。
0606nobodyさん04/07/10 15:54ID:???
>>603
http://pc5.2ch.net/test/read.cgi/software/1086500384/855-857
0607nobodyさん04/07/10 18:44ID:???
>>601
PHP.net、php-doc-jp を漁って下さい。

実作業に関する情報は
http://elf.no-ip.org/wiki/?PHP%2Fphpdoc

作業内容を把握して出来そうだなと思ったら、
参加したい旨を php-doc-ja に投げれば誰かが面倒見てくれます。
0608nobodyさん04/07/12 19:02ID:???
なんでmojaviにはcookieをgetするメソッドはあるのに
setするのはないんだろう?
0609nobodyさん04/07/13 11:53ID:???
リストボックスとかラジオボタンの値の保持ってできんの?
0610nobodyさん04/07/16 13:35ID:???
mojaviわかりやすく解説したサイトある?
0611nobodyさん04/07/16 15:01ID:???
そんなもの無い。
フォーラム漁るかコード読むか。

8月末の神ムック発売まで待て。
061261104/07/16 15:34ID:???
フォーラムからたどれるけど
http://ad.hominem.org/log/2004/06/tutorial_on_mojavi.php
とかあるが、分かりやすいとは言えない罠。
0613nobodyさん04/07/19 03:08ID:???
PECLのSQLiteが1.0.3でSQLite2.8.14になりますた。
でも pear upgrade SQLite-1.0.3.tgz だと
sqlite.so の移動に失敗するんでtarballを解凍して
手動でmake installしないといけませんでした。(なぜかこの場合はOK.)
PHPのバージョンは4.3.8, OSはMacOS X 10.3.4 と FreeBSD 5.2.1-p9
0614nobodyさん04/07/19 08:17ID:???
>>613
確かに、pear upgrade SQLite では、置き換えに失敗して、sqlite.so が消えていた。
こちらは Linux だったけど。

結局、アンインストールしてからインストールした。

pear uninstall SQLite
pear install SQLite
0615nobodyさん04/07/22 09:56ID:???
最近、Mojavi のソース読み始めたんだけど、
Mojavi って、
module/***/action/***
っていう形でアクセスするから、どうもURLが長くなりがちだよね?
パラメータを渡そうとするとさらに長くなるし、これは、module action の部分を
短くするとかしか、短くする手段ってないのかな?

今まで、
***.php?para=***
みたいなカンジだったから、一気にURLが長くなるので気になってしまって..
0616nobodyさん04/07/22 10:15ID:???
>>615
二通りの対処ができます。

* module, action の部分を変更する。
config.php の MODULE_ACCESSOR, ACTION_ACCESSOR を変更して下さい。

* ページコントローラとして Mojavi を使う。
ディレクトリ毎にコントローラ index.php を置いて、モジュールとアクションを固定しておく。
$controller->dispatch('TargetModule', 'TargetAction');
0617nobodyさん04/07/22 10:40ID:???
なるほど、そっか。
dispatch に直接モジュールとアクションを渡せばURLで渡す必要はないのね。

ってことは、別名のファイルでモジュールとアクションを固定してしまえば、
前みたいに、
***.php?para=***
ってこともできますね。感謝!
0618nobodyさん04/07/22 15:57ID:???
>>615-617
mod_rewriteでいいんじゃない?

0619nobodyさん04/07/31 23:59ID:???
Mojaviの神ムックが待ち遠しい・・。

ところで本の名前とかはまだ分からないんでしたっけ?
0620nobodyさん04/08/01 02:08ID:???
一冊まるごとmojaviとかpearライブラリを使ったムックが出るのかと思ってたが、
少し記事が載るってだけなんだよね?楽しみな事に違いはないが。
0621nobodyさん04/08/01 05:11ID:???
ライター陣は強力だし、期待して良いんでは。
0622nobodyさん04/08/01 23:45ID:???
Mojaviの記事に期待されている皆様へ

Mojaviの記事を書いた者です。
現在のところ、ムックの発売日や名前に関して、少なくとも私は存じており
ません。このことについては、明日確認を取ってみます。
0623nobodyさん04/08/01 23:49ID:???
誰?
0624nobodyさん04/08/01 23:53ID:???
もじゃう゛ぃ
0625nobodyさん04/08/02 00:43ID:???
神イタ━━━━━(゚∀゚)━━━━━!!!!
062662204/08/02 18:01ID:???
確認取りました。
とりあえずムックは出版されるということしか、現在はわかりませんが。。。
続報が報告可能でしたら、後日。
0627nobodyさん04/08/02 18:04ID:???
>>626
あのー,出来れば出版社の名前だけでも教えてほしいのですが・・。
062862204/08/02 18:20ID:???
>>627
下記を参照下さい。
http://ns1.php.gr.jp/pipermail/php-users/2004-May/022134.html
062962704/08/02 23:55ID:???
>>628
ありがとうございます。
てっきり私はWEB+DB PRESSあたりなのかなと思っていたんですが,
PHP専門のムックが発売されるんですね。

楽しみにしてます。
0630nobodyさん04/08/04 18:23ID:99atDA1b
DB_DataObjectで

$id = $table->insert();

で、sequenceの値がとってこれるとマニュアルにあるみたいですが、うまくいきません。

ini に

sequence_usr = id

ってして createTables.php してもダメです。

ためしに DataObject_Usr クラスに sequenceKey(){return array('id',true,false)} を追加したんですが、
やっぱりうまくいかないです。

なんででしょうか・・・
0631nobodyさん04/08/04 18:44ID:???
> sequenceの値がとってこれるとマニュアルにある

どこでつか
0632nobodyさん04/08/04 18:52ID:???
>>630
とりあえず debugLevel 5 に設定して
DB とどんなやり取りをしてるのかみてみるのがいいかも。

あと sequenceKey() を設定しても、keys() で帰ってくるのが偽だった時
array(false, false, false) を返すみたいなので、念のため
keys() { return array('id') }  もあわせてどうぞ。

ついでにいうと、DB は何なのか?ってのも。
0633nobodyさん04/08/04 20:01ID:???
>>631
http://pear.php.net/manual/ja/package.database.db-dataobject.db-dataobject.insert.php
Insert the data into the database, based on the variable values of the current object
and returns the ID of the inserted element if sequences or primary keys are being used.
このあたりだね。
オイラも>>630と同じ状況になったけど、その時は諦めて追っかけてないや。
0634nobodyさん04/08/07 13:01ID:???
おい、ボケども、ムックはどうなってんだ!早く出せ!
0635nobodyさん04/08/07 13:14ID:???
ヽ(´ー`)ノ 夏、真っ盛り
0636nobodyさん04/08/07 13:43ID:???
Flexy1.0.0がでましたね。
使っている方どれくらいいらっしゃるのでしょう?
0637nobodyさん04/08/07 13:49ID:???
>>636
ノシ
0.9.2から大きな変更はなさそうなのですんなりアップグレードできそう。
DB_DataObject 1.7.0も出ましたがChangeLogの
* Result Field names now stored seperately from Result Object
がちょっと気になるのでこっちはコードを見てからアップグレードする予定。
0638nobodyさん04/08/07 14:40ID:???
うぉー、1.0 だ!
ここまで長かったっすねぇ。

Flexy 使ってます。
でも HTML の文法構造が破綻していると出力がもっと壊れるので HTML の品質が確保出来ないと使いづらいのが (/_;)
0639 ◆AngelH/kMI 04/08/08 02:33ID:???
|x・)ムックは遅れてます・・・
とりあえず、次のW+D見ながらのんびりお待ちください(ぶ
0640nobodyさん04/08/08 11:44ID:???
うるせーボケ!ぐだぐだ云ってないで早く出せ!カス!
0641nobodyさん04/08/08 20:34ID:???
本当、夏だな…

>>639
次のW+Dにも何か載るの?
0642nobodyさん04/08/13 21:48ID:???
oracleに繋げようとしてんだけど、
dsnにホストの名を設定するとエラーになるけど
ホスト名設定しないとつながる。
わけわかんねえな〜。
0643nobodyさん04/08/13 23:06ID:???
>>642
Oracleは使ってないんだけど、
ホスト名を書くとTCP/IPで接続、書かないとUNIXドメインソケットで接続するから、
Oracle側の設定でTCP/IPによる接続を許可していないんじゃないかな?

外してたらスマソ
0644nobodyさん04/08/13 23:47ID:???
>>642
それは Pear のどのパッケージの話?

もしかして Pear じゃなく oci8 関数の話をしているならスレ違いだが,
その「ホストの名」ってのが tnsnames.ora にサービス名として
きちんと登録されているか確認してみると良い.
0645nobodyさん04/08/14 00:22ID:???
>>643
>>644

Oracle9iが入ってるサーバー(RedHat8)と
Oracle8iが入ってるサーバー(WindowsXP)があるのね。
tnsnames.oraに2つともサービス登録してあって、
両方ともSQLPlusでつながるし、PHPのOciLogonでもつながるんだよ。

パッケージはデータベースでいいんじゃないの?

ちなみにPHPとOracle9iは同じサーバー(RedHat8)に入っているよ。
0646 ◆AngelH/kMI 04/08/15 14:28ID:???
>>641
返事遅れてごめんなさい。
既に告知でてますが、24日発売のW+DにPHPの特集記事があります。
内容はやや初心者よりかな。

立ち読みして買っても損しないと思ったら買ってください(笑
0647nobodyさん04/08/20 15:19ID:???
すみませんが、どなたか
http://oopp.dyndns.org/technote/dbdo_manual.html
http://oopp.dyndns.org/technote/dbdo_basic.html
ここにあったDB_DataObjectのドキュメントを保存しているかたいませんか?

かなり重宝していたのですが、最近つながらなくなってしまって..
OOPP Memorandaってサイトの1コンテンツだったと思います。

0648nobodyさん04/08/24 09:31ID:???
例のムックの情報出てました。

http://ns1.php.gr.jp/pipermail/php-users/2004-August/023573.html
0649nobodyさん04/08/24 12:23ID:???
元々オフレコだったのを誰かさんが PHP-users に流して、今度は まーだーちんちん か…
0650こやま04/08/24 18:01ID:???
いやでも、情報公開の時期としてはそろそろいい頃だし、
鈴木さんはなかなかこういうのを仕掛ける人ではないので、
タイミングとしてはいい質問だったんでないかな。
0651nobodyさん04/08/24 18:06ID:???
ひょっとして、自作j(ry
065264904/08/24 18:46ID:???
いやー、迷惑になってないならそれでいいんですが。
最初に PHP-users に流れた時には色々あったので。
0653nobodyさん04/08/30 15:19ID:s3JBvD0S
DB_DataObject で joinAdd するときの話なんだが、

links.ini には
[tb2]
tb2_id = tb1:id

んで、
$do1 = DB_DataObject::factory('tb1');
$do2 = DB_DataObject::factory('tb2');
$do2->no = 1;
$do1->joinAdd($do2,"LEFT");

なとき、

SELECT * FROM tb1 LEFT JOIN tb2 AS tb2 ON tb1.id=tb2.id

とかなるんだが、俺としては

SELECT * FROM tb1 LEFT JOIN tb2 AS tb2 ON tb1.id=tb2.id AND tb2.no=1

になってほしいんだが。
どうすればいいとおもう?
0654nobodyさん04/08/30 15:20ID:???
あ、まちがい
[tb2]
id = tb1:id
0655nobodyさん04/08/30 18:45ID:???
風がすごいですなー。
>>653
$do2->whereAdd('no=1'); とか $do1->whereAdd('tb2.no=1'); とかではだめ?
自分はDB_DataObjectのJOIN嫌いなのでテーブル結合はビュー使って
ビューに対してDB_DataObjectのインスタンスを作ってます。
だから↑で書いたのは間違ってるかも。
0656nobodyさん04/08/30 18:56ID:???
INNER JOINですが、

[table1]
id = table2:table1_id

$table1 = new Example_DataObject_Table1();
$table2 = new Example_DataObject_Table2();
$table2->example_field = 5;
$table1->selectAs();
$table1->joinAdd($table2);
$table1->whereAdd('table1.id = ' . $hoge);
$table1->find();

SELECT 〜 FROM example INNER JOIN table1 AS table2 ON table1.id=table2.table1_id WHERE table2.example_field = 5 AND table1.id = xxx

な具合に動いています。
0657nobodyさん04/08/30 21:50ID:???
>>647
復活したね。
ついでにこれで中の人も分かったので、これだけのドキュメントが行方知らずって勿体ない事態もこの先回避出来るぽい。
0658nobodyさん04/08/31 00:19ID:???
最近の関西の盛り上がりをみてるとPHPって
性交童貞もとい、西高東低な気がする。
0659nobodyさん04/09/01 06:56ID:Mk6yOqMs
すいませんが教えてください
PEARを使いたくてインストール方法を調べてたんですが

c:\php\go-pear.bat

なんてものはないんですが・・・

環境
WindowsXP
PHP4.3.2
0660nobodyさん04/09/01 07:20ID:???
>>659
なんでそんなバージョン使ってるの?
0661nobodyさん04/09/01 08:13ID:???
>>660
卒研で使うサーバーと同じ環境を構築ってのが理由だったんですけど・・・

みなさんはどこら辺を使ってるんですかね?
0662nobodyさん04/09/01 09:08ID:???
>>661
go-pear.batはcli版のphpで、PEARフォルダのgo-pear.phpを実行
しているだけなんだけど、php内のPEARフォルダに go-pear.php
ファイルはある?
066366004/09/01 09:21ID:???
>>661
> みなさんはどこら辺を使ってるんですかね?

私は常に最新版を使っているけど、PHP日本ユーザ会のページに各バージョンの
Release Announcement と ChangeLog(それぞれ和訳あり)、Bug情報が載っている
から、読んで判断されたし。

ttp://www.php.gr.jp/
0664nobodyさん04/09/01 09:43ID:???
>>662
それがないんすよ
ぐぐってやり方調べてもそこから始まってて、どうにもならなくてここにきたわけなんですが
cli版のPHPってのも初めて聞きました

>>663
参考にします
066566004/09/01 10:06ID:???
>>664
php-4.3.2-Win32.zipの中にはgo-pear.batが入ってるよ(確認した)。
本家のページからWindows binary(not Windows installer版)を再入手してはいかが?
0666nobodyさん04/09/01 18:36ID:???
>661
そのサーバは攻撃されたらあぼーんですね。
■ このスレッドは過去ログ倉庫に格納されています