xoopsでデータベースを操作する・・・主なクラスの勉強
今日も「XOOPS Cube Legacy デベロッパーズ・バイブル」の勉強をしています。今日のお題は第4章「主要なクラス群」の4-1-1「テーブルオブジェクト」です。簡易掲示板のプログラムをいきなり理解しようと思ってもちょっとつらいですよね。先ずはデータベースの操作に関する xoops のクラスを勉強します。
今日のサンプルコードはこれ。例によって今の環境で動くように修正して、コメント文をベタベタと貼ってあります。教科書見ながコメントを書いていく努力をすると、結構勉強になりますね。サンプルコードが呼び出しているクラスや関数は NetBeans の検索機能を使って xoops のファイルにジャンプして何をやっているのか確認します。が、xoops 側で複雑なことをやっていると必ずしも追いきれなくて疲れたりします。
さて、今日勉強したクラスは XoopsSimpleObject と XoopsObjectGenericHandler (&$db) です。これは XCL が推奨しているデータベース操作のクラスだそうです。サンプルコードを見れば分かる通り、SQL 文を全く意識しないでデータベースの操作が出来ることが売りのようです。が、簡単なデータベースなら SQL 文を書いて PHP で直接操作した方が余程分かりやすいような気がします。因みに d3dialy を調べてみると、SQL 文をしっかり書いていますね。これは歴史的なものなのかもしれませんけど・・・。
以下は XoopsSimpleObject と XoopsObjectGenericHandler クラスのメソッドと変数です。
<XoopsSimpleObject () > Public メソッド setNew () unsetNew () isNew () initVar ($key, $dataType, $value=null, $required=false, $size=null) assignVar ($key, $value) assignVars ($values) set ($key, $value) get ($key) gets () setVar ($key, $value) setVars ($values) getVar ($key) getShow ($key) getTypeInformations () Public 変数 $mVars = array() $mIsNew = true $_mAllowType = array(XOBJ_DTYPE_BOOL, XOBJ_DTYPE_INT, XOBJ_DTYPE_FLOAT,
XOBJ_DTYPE_STRING, XOBJ_DTYPE_TEXT) <XoopsObjectGenericHandler (&$db) > Public メソッド create ($isNew=true) get ($id) getObjects ($criteria=null, $limit=null, $start=null, $id_as_key=false) getCount ($criteria=null) _getCount ($sql=null) insert (&$obj, $force=false) _insert (&$obj) _update (&$obj) _makeVars4sql (&$obj) _makeCriteria4sql ($criteria) _makeCriteriaElement4sql ($criteria, &$obj) delete (&$obj, $force=false) deleteAll ($criteria, $force=false) Public 変数 $mTable = null $mPrimary = null $mClass = null $_mDummyObj = null
XoopsObjectGenericHandler で検索すると解説しているサイトも有るようですね。