Pear
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0478nobodyさん
04/05/11 11:53ID:dmRD31gkサーバー PHP Version 4.1.2
開発環境 PHP Version 4.3.4
0479nobodyさん
04/05/11 11:57ID:???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ありがとうございました。
しかし、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:???include_pathになんて入れたの?
そのエラー文からだと、/home/xxxx/xxxx/PHP としたのか?
つーか、やる気ある?
0482nobodyさん
04/05/11 14:38ID:???is_a() 関数は 4.2.0 以上から使えるようだ。
http://jp.php.net/manual/ja/function.is-a.php
各 PEAR パッケージが要求する依存関係リストを確認して必要なら下位バージ
ョンを使うとよい。
0483nobodyさん
04/05/11 16:12ID:???DB.php を読む前に定義しとけば下位バージョンでもひとまず動作はするよ.
# つーか,エラーメッセージも読まずに「わかりません,やってください」なんてのは php-users でやってくれ(w
あと老婆心ながら.開発環境の方が新しいバージョンなのはトラブルの元になるからヤメた方が良い.
0484nobodyさん
04/05/12 01:18ID:???IEが何故か自動認識してくれず化けまくり
同じ症状の人います?
何か原因があるのかな・・・
0485nobodyさん
04/05/13 10:47ID:???その後全く動かなくなってしまうのですが、なぜでしょう?
pear download xxxでモジュールのみダウンロードして
pear install xxx.tgzをしても同じく止まったままになってしまいます
0486nobodyさん
04/05/13 18:06ID:???あと,先に手動で Archive_Tar あたりをアップデートしてから再挑戦してみるとか.
0487nobodyさん
04/05/14 09:20ID:???環境を書き忘れていました。
サーバ: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:???エラーメッセージは、
cmd=edit&page=[[xxx]] は有効な WikiName ではありません。
のようなものです。
0489nobodyさん
04/05/19 00:22ID:???つーのが臭い。。。こんなバージョンで運用する管理人さんって?
ごめんなさいごめんなさい。
PHP5対応暫定でしました。
HTTP_GET_VARS
HTTP_POST_VARS
HTTP_SERVER_VARS
HTTP_COOKIE_VARS
このあたり、PHP5からもう使えないんですね・・・。
0491nobodyさん
04/05/19 09:25ID:???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:???query()で書くしかない?
0493nobodyさん
04/05/29 15:06ID:???0494nobodyさん
04/05/30 23:45ID:???ありましたっけ?
0495nobodyさん
04/05/30 23:56ID:???このCLIベースの永続セッションってどうやってつかうんだろ?
0496nobodyさん
04/05/31 01:43ID:???ActionChainの仕組みが今ひとつわかりません。
http://mojavi.org/forum/viewtopic.php?t=433
を見て試してみてるんですが、
ActionChain::fetchResult()で戻ってくる結果ってどうやってセットするものなんでしょう。
0497496
04/05/31 02:35ID:???これってob_start → ob_get_contentsで
そのモジュールのVIEWが出力してる値を保存してるだけだったんですね。
0498nobodyさん
04/05/31 10:05ID:???ご存じかもしれませんが、 milestone b2 の ActionChain にはバグがあるの
で注意して下さい。
http://pear.sakura.vg/index.php?%5B%5BITEMAN%5D%5D
0499nobodyさん
04/06/02 10:19ID:???複数のデータっていうのがどういうものなのかわかりませんが
私は配列で格納された複数のデータをforeachでautoexecuteする
メソッドを用意してそれで一括登録してます。
(って全然スマートじゃないですけど・・)
MDBで言うExecuteMultipleでinsertみたいな感じかと。
それなら、まあ499さんの言うようなラッパー書くしかないかな・・・。
しかし、DB_DataObject良いね。
今まで使ってなかったのはもったいなかったよ。
誰かmojavi + QuickFormで使ってる人いますか?
上手くやるとかなり楽出来るかな、とは思うのだけど
綺麗にまとめられない・・・。
良い実装例あったら見てみたいです。
新しいトップが見えたり、ソースコードが見えたりしてる・・・。
こういう事故があるから、ドキュメントルート以下には最小限のコードしか置かない、
ってことなんでしょうね・・・。
そして
www.mojavi.org v2 released
June 9th, 2004
ですよ!
ついにきたー
0505nobodyさん
04/06/10 13:49ID:???これは Mojavi 2.0 リリースじゃなくてサイトがリニューアルされたというこ
とですよね。
dev.mojavi.org でこっそり公開されていた内容に置換されたみたいです。
ああ、サイト変わったからそろそろMojavi2.0リリースかなぁという期待です(笑
0508nobodyさん
04/06/11 23:44ID:???0509nobodyさん
04/06/11 23:58ID:u32wLhvU2.0リリース&3.0スタートみたいね。
こんなもんまでありました。↓
[Mojavi 3.0 Manual]
ttp://wiki.mojavi.org:8080/99.html
0510509
04/06/11 23:59ID:???mojavi1からmojavi2が素晴らしい変化だったと思うので、
mojavi3にも超期待ですよ。
ただ、楽は出来るんだけどほんとにする事なくなりそう(苦笑
0512nobodyさん
04/06/12 06:09ID:???まとめてありますか?
0513nobodyさん
04/06/12 06:50ID:???http://www.mojavi.org/forum/viewtopic.php?t=491
ここになるのかな。
PHP5向けでしょうかね。
>>513
激しく同意。
502氏の活躍が楽しみです
しかし、ドキュメントの充実って大変だよなぁ・・・。
PEARのほうも、明らかに足りていないし。
0515nobodyさん
04/06/12 18:40ID:???ありがとうございます。参考になりました。
とりあえず2.0.0をインストールしてみまして、index.phpとconfig.php
の設定は終わりました。version2用の crash course を読みながらトライ
してるのですが
WARNING [/usr/local/lib/php/mojavi/mojavi-all-classes.php:470]
Invalid configuration setting(s): ERROR_404_MODULE (Default) or ERROR_404_ACTION (PageNotFound)
「http://localhost/mojavi/index.php?module=Default&action=Login」
にアクセスするとこんなエラーが出ました。まずは自分でmodule?とやらを
作らないといけないんでしょうか。
どなたか最低限の開発の流れを教えていただけませんか?
ttp://dev.mojavi.org/images/diagrams/2.0/action_sequence.png
ここを見たけどいまいちピンときません。
その通りで、自分でモジュール作らないとダメです。
で、警告が出ているのは
指定したモジュールが無い場合に表示するモジュール( Default / PageNotFound)が無いために出ています。
例えば、「module=Default&action=Login」と指定してるなら
webapp/modules/Default/actions/LoginAction.class.php
webapp/modules/Default/views/LoginView.class.php
あたりを作らないといけません。
自分は
http://pear.sakura.vg/index.php?%5B%5BMojavi%2FTutorial%5D%5D
これ見て覚えました。
それにしても、すっかりmojaviスレ(苦笑
面白そうなPEAR無いですかねぃ。
0517nobodyさん
04/06/12 21:13ID:???ttp://pear.sakura.vg/index.php?%5B%5BMojavi%2FTutorial%5D%5D
これは 2.0.0 でも問題なく使えるんでしょうか?
参考にがんばってみます。作者タンに感謝。
# なんかmojaviの話題ばっかですいません
0518nobodyさん
04/06/13 22:21ID:???Console_ColorをしようしてカラフルなCLIアプリを作ったのですが,
lessにパイプすると文字化けしてしまいます。
tcshでRedhatでScreenを使用しています。
lessってカラフルにはならなかったような気がするので、
文字化けしないようになれば充分です。
解決方法はあるのでしょうか?
// PHPでCLIページャを書くとかしてみようかな
0519nobodyさん
04/06/14 01:21ID:???$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '確認済み', 'yes');
$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '未確認', 'no');
$form->addGroup($elementValid, 'valid', '確認:', ' ');
こんな風にラジオボタンを作成したんですが、「確認済み」の方を
デフォルトでチェックしておきたい場合はどうしたらいいのでしょうか?
$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '確認済み', 'yes', array('checked' => 'checked');
としてもチェックが入りませんでした。
0520nobodyさん
04/06/14 01:39ID:???とかそんなんだった気がするです.
0521nobodyさん
04/06/14 04:04ID:???Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/lib/php/HTML/Template/Flexy/Compiler/Standard.php on line 667
Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/lib/php/HTML/Template/Flexy/Compiler/Standard.php on line 675
その後でこんなエラーが出ます
Parse error: parse error in /home/httpd/hoge/compiled_templates/flexy-static.html.en.php on line 51
これはテンプレートにマルチバイト文字が含まれてる場合だけに発生して
全部英数字の場合はうまくいきます。
php.ini で str* 関数をオーバーロードするように設定してたので、一旦
それを外したら上手く動きました。文字化けもしてないようなんで一安心
なんですが、mb_strpos じゃなくて素の strpos を使っててそのうち問題が
起きないか心配です。
このエラーはうちの環境だけで皆さんは普通に動いてますか?
mb_系関数でのオーバーロードは使わないのが基本だと思う・・・。
mb_系使うときは明示的に指定すればいいわけで、
素の状態の関数が使えないのはやばい。
0524520
04/06/15 11:29ID:???うちの環境では以下のコードで期待通りに動きます.
<?php
require_once 'HTML/QuickForm.php';
$form = &new HTML_QuickForm('test');
$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '確認済み', 'yes');
$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '未確認', 'no');
$form->addGroup($elementValid, 'valid', '確認:', '?');
$form->setDefaults(array('valid' => 'no'));
$form->display();
?>
これでダメなら H_QF のバージョンが古いとかですかね……
0525nobodyさん
04/06/15 12:45ID:???使えない。
0526nobodyさん
04/06/15 12:47ID:???0527nobodyさん
04/06/15 13:29ID:???0528nobodyさん
04/06/15 13:51ID:???$form->accept($qf);
$smarty->assign('form', $qf->toArray());
これだけでわかりますかねぃ。
$smartyがsmartyのオブジェクト。
$formがaddElementとかしたQuickFormのオブジェクト。
んで、テンプレート側では
<form {$form.attributes}>
{$form.name.label} : {$form.name.html} {$form.name.error}
{$form.submit.html}
</form>
みたいに記述。
0530nobodyさん
04/06/16 11:06ID:???HTML_QuickForm のドキュメント,ごたごたして見づらいけど,
先頭の方の addElement() とかしてる部分を読み飛ばせば解りやすいかと.
ttp://cvs.php.net/co.php/pear/HTML_QuickForm/docs/renderers/SmartyDynamic_example.php?r=1.2
ttp://cvs.php.net/co.php/pear/HTML_QuickForm/docs/renderers/SmartyStatic_example.php?r=1.2
つってもあたしゃお手軽な HTML_Template_Sigma 使いなので Smarty 使ってねーのですけどね(w
0531nobodyさん
04/06/16 21:13ID:???こういう風に使う場合、
TML_QuickForm_Renderer_ArraySmartyのコンストラクタって
smartyオブジェクトが引数になってるけど、
水面下のレンダラのクラス内でsmartyオブジェクト使って何やってるんだろう
今ソース追いかけてるんですけど今いちピンとこない・・・
0532531
04/06/16 21:16ID:???HTML_QuickForm_Renderer_ArraySmartyです
0533nobodyさん
04/06/16 22:38ID:???便利だなぁ。
pearのテンプレートもみてみます。
0534nobodyさん
04/06/17 20:20ID:???テンプレートにはブロックやプラグインの機能が追加され、
Smartyのassign()のようにデータを登録するメソッドも追加された模様。
プラグインで変数の修正子を拡張できるようになったのが面白いけど
とりあえず今作りかけの2chビューワは0.8.2までのAPIだけで行こう。。。
0535nobodyさん
04/06/20 06:04ID:???いろいろありますけど、
それぞれの違いを解説したサイトなんてありますか?
0536nobodyさん
04/06/20 08:35ID:???というのも、鯖によってPEARがインストールされているかどうかがまちまちだからです。
それなら、配布パッケージにPEARをはじめから添付させればいいじゃないかと
思われるかもしれませんが、
そうすると、
Fatal error: Cannot redeclare class pear in /usr/local/lib/php/...
といったエラーがでる可能性があります。
従って、PEARを使う場合にはユーザーにわざわざPEARが
インストールされているかどうか確かめてもらって
それによってスクリプトの設定を修正してもらう必要がでてきてしまいます。
まぁ、class_exists関数をいちいち書いてやればいいのですが・・
とにかく、何かと面倒ですよねぇ。。。
0537536
04/06/20 08:48ID:???0538nobodyさん
04/06/20 09:34ID:???ファイル検索パスをちゃんと設定してやれば無問題。
$_base_dir = dirname(__FILE__);
$_include_path = $_base_dir . PATH_SEPARATOR . $_base_dir . '/lib';
ini_set('include_path', $_include_path);
0539536
04/06/20 09:55ID:???ありがとうっ
0540nobodyさん
04/06/20 22:06ID:???ドキュメントが全くないんじゃないかな・・?
みんなどうしてるの。
わざわざコード読むなら、
自分にあった小規模なフレームワークを
自作しちゃえばいい気がするし・・・。
0541nobodyさん
04/06/21 00:45ID:???配布じゃなくてレンサバでなんだけど
.htaccess でinclude_pathを設定して/usr/lib/php/の下を丸ごとうpしたことがある
php_value include_path /home/sites/users/acount/web/lib
0542nobodyさん
04/06/22 16:20ID:s1sNH/ZvPearインストール後、DB接続をしようとすると
Call to undefined function: setfetchmode()
と出るんですが、setfetchmode()が定義されてないってことですよね?
setfetchmode()ってわざわざ手動で定義する必要があるんでしょうか?
原因のわかる方、教えてください。
関連するソースコードは以下の通りです
require_once("DB.php");
$config = "mysql://mysql接続設定";
$db = DB :: connect( $config, true );
$db->setFetchMode( DB_FETCHMODE_ASSOC );
0543nobodyさん
04/06/22 16:24ID:???接続に成功しているかどうかを確認するのが先でしょう。
echo DB::isError($db) ? '成功': '失敗';
0544nobodyさん
04/06/22 16:26ID:???0546542
04/06/22 16:40ID:???その通りでした。
今回Pearを初めて触ってみたんですが、素のPHPと違って
DB接続エラーとかデフォルトで吐き出してくれないんですね。
ありがとうございました。
0547nobodyさん
04/06/22 17:24ID:???エラー時の振る舞いをこれで変更できます.
0549nobodyさん
04/06/22 17:55ID:???0550nobodyさん
04/06/22 23:08ID:???DBクラスの使い方についてはここが参考になると思う。
ttp://dokokano.com/php/php_pear_db.html
0552nobodyさん
04/06/23 13:34ID:???DB クラスは PEAR クラスを継承していないという驚きの事実
DB_xxx を返す factory のためだけのクラスだからですかね.
$db = DB::connect() して $db->setErrorHandling() なら可能なんでしょうかね.試してないけど.
0554nobodyさん
04/06/26 23:01ID:???0555nobodyさん
04/06/27 00:20ID:???0556nobodyさん
04/06/27 17:11ID:???0557nobodyさん
04/06/27 19:38ID:???0558nobodyさん
04/06/27 19:39ID:???0559nobodyさん
04/06/27 19:43ID:???0560nobodyさん
04/06/27 19:45ID:???0561nobodyさん
04/06/27 22:13ID:???0562554
04/07/01 14:18ID:???先日PHP質問スレでHTML_QuickFormの話がちょろっと出てて、
てか、前々から「便利だよ」と再三再四出ていた訳なんだが、
気にしつつ、マニュアルを見たらサクッと使える気がしなくて
敬遠してた。オサーソはなかなかついていけません。orz
んで、ちょっと使ってみた。スンゲー便利やん。
吐いたHTMLを見ると、タグの属性でalignやvalignを使ってるのねん。
別にW3C信者ってほどではないが、一部はCSSで指定しているんだし、
どうせならここらあたりもstyle属性で指定してくれりゃ... と思うのは
おらだけじゃないはず。きっと、デフォルト設定用メソッドが用意されているとは
思うが、もうどこかに、W3C信者用設定一式みたいなのはどこかに転がって、
Viewクラスのコンストラクタ辺りでHTML_QuickFormのインスタンス生成→Myデフォ設定
ってやってる方も居るはず。
そんなわけで、そこら周りのスクリプトだれか晒しぎぼんぬです。
0563554
04/07/01 15:29ID:???あーなるほど。
0565554
04/07/01 16:38ID:???うぃうぃ、そのようですな。
そして、Smarty用レンダラのtoArray()で吐く変数を見るとheader関係とエレメント関係の配列が
同じ次元に格納されている。つかえねぇー。
エレメント部分だけ一つ掘った配列にしてくれりゃ、{section}でループさせるのに...
submit辺りは自分で書くからさぁ。
もうちっと格闘するか。
0566564
04/07/01 18:52ID:???上手な使い方がどーにも思いつかない orz
Default レンダラで使うならともかく,テンプレエンジンと組ませると,かなーり不要な気がする.
header を活用しまくってるって人いたら使用例を公開きぼむ.
0567554
04/07/01 22:23ID:???チョト言い方悪かった。
headerエレメントというより、form全体のfrozen、javascript、attributes等と
同列の配列に、各エレメントの配列が並んでいるんですよ。
んで、素のtoArrayをみれば、ちゃんとエレメントは一つ掘っていました。
ちょっと何の為にSmarty用のレンダラが用意されているのか疑問。
正しい活用方法があれば教えて欲しい。
それか、toHtmlを書き直してごっそり押し込む方が楽が出来そう。
0568nobodyさん
04/07/01 22:54ID:???おそらく全く同じ疑問で悩んでる人発見
同列に並んでるからエレメントをループして表示させようとすると
いちいちfrozen、javascript、attributesを判断して抜かないとダメじゃん、
ってことですよね
結局俺もこれを解決する事ができずArraySmartyレンダラを諦めて
Arrayレンダラでやってます
ArraySmartyレンダラでこの問題を解決する方法ないもんでしょうか
自前でレンダラ書き直した方が速いのかな・・・
0570nobodyさん
04/07/02 03:14ID:???is_array($element) && isset($element.html)
とかやってたかも
スマートじゃないですか、、そうですか |出口| λ............
昔あった SmartyDynamic レンダラとかはそういう仕様だった気がする。
0571570
04/07/02 03:18ID:???> んで、素のtoArrayをみれば、ちゃんとエレメントは一つ掘っていました。
のことね。
> ちょっと何の為にSmarty用のレンダラが用意されているのか疑問。
ってのは Smarty だけじゃなく、他のテンプレートエンジンを考慮した時に生きてくるんじゃないかなと思ったり。
# 酔いどれ中につき、いろいろと失礼。
0572nobodyさん
04/07/02 09:56ID:???ArraySmarty ってソースにも書いてある通り ITStatic をベースにした static レンダラだから,
{section} で回せるものを吐くようにはそもそも出来ていない(使い方が違う)ってことではないかと.
テンプレートにエレメント名の項目をずらっと書いておけば accept() 一発でいけるわけで,
汎用テンプレートを使えるようにするには SmartyDynamic のようなものが必要,と.
どうして SmartyDynamic がなくなって代わりが用意されなかったのかは謎ですが.
0573554
04/07/02 10:59ID:???今form入力ページがたくさんある業務用サイトを作っていて、
数ページ程度ならエレメントをずらずらと並べるけど、なんだか
QuickFormの利点一つ(サンプルスクリプトを動かしてみたときの感動)が
スポイルされる気がするし、数十ページになるとループで回せるところは
テンプレート側で回したいので、現段階での結論は、汎用テンプレートを
用意しViewクラス内で素のQuickForm::toArray()で得た変数を元に
form部分をくみ上げて、メインのテンプレート内に押し込むことにします。
きっともっと便利な方法があるかもしれないけど、これだけ大きなクラスを
掌握する頭も時間もねぇー。
お付き合いありがとうございました。
0574nobodyさん
04/07/02 11:16ID:???|_・) 何かのフレームワークですか、、もじゃ?
0575nobodyさん
04/07/02 11:29ID:???確かにそういう用途だと Dynamic レンダラじゃないとやってられんですね……
今の作業が終わって手が空いたら SmartyDynamic を新たに作ってしまうと後が楽かもです(w
ArraySmarty を継承して,toArray() をうまいこと自作すれば,意外に簡単にいけそうな気がする.
0576554
04/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 はそこでやってる
■ このスレッドは過去ログ倉庫に格納されています