注文の多いXOOPS屋 TOP現在のブログ旧スタッフblog アーカイブ
このページは 2007〜2008 年に公開していた「株式会社RYUS スタッフblog」のアーカイブです。内容は当時のものです。

XOOPS Cube デバッグ用 preload \"ryusDebug\"

2007/04/27 17:55   Ryuji   カテゴリ: XOOPS Cube

XOOPS Cube には、デバッグモードがあります。
デバッグモードの選択肢は 4 つ
1.オフ
2.PHP デバッグ
3.MySQL/Blocks デバッグ
4.Smarty テンプレートデバッグ

モジュール開発中は常に PHP デバッグに設定して開発しています。Notice や Warning メッセージを見てデバッグするためです。

もうひとつ、開発中に見ておきたいのが MySQL のクエリです。
リクエストパラメータによって、取得、表示するデータが異なるようなプログラムを組むことが多いモノです。
言い換えると、リクエストパラメータを元に MySQL へのクエリも動的に組み立てているわけです。
そのため、思った通りにクエリが発行されているのか?
クエリエラーが起きてはいないか?
というのは開発中に気になるところです。

そこで私は XOOPS2 を利用していたころから PHP デバッグモードにしつつ、クエリログもフッタに表示させていました。
同じことを XOOPS Cube2.1 でも行えるようにした preload が ryusDebug です。

・ryusDebug

preload に追加しただけは機能しません。
開発中に使うテーマの theme.html に下記を追加する必要があります。

PRE< {xoops_explaceholder control=ryusDumpSql}>
これを Smarty プラグインで行わずxoops_explaceholder を使う利点は control で指定されたデリゲートが定義されていなければ、無視される点です。
テーマに上記を追加したままサイトに UP してしまっても、preload が無ければクエリログは表示されません。エラーにもなりません。
# ryus_date もこのパターンに変更したいと思ってます。。

ちなみに、モジュール内でデバッグ用に echo した内容を表示するには下記も必要です。

< {$stdout_buffer}>/PRE

ryusDebug には、他に print_r を見やすくした ryus_print_r。(もとコードは こちら )
テンプレート中で ryus_print_r を使うための拡張プレースホルダ ryusPrint_r もあります。

ryusPrint_r はテンプレート中で下記のように使います。

< {xoops_explaceholder control=ryusPrint_r var= 変数名 }>/PRE

コメント (1)

VtWin — 2007-04-28 19:46
ご結婚されたんですか?
おめでとうございます。
ズープス・・・勉強したいです。
末永くお幸せに。