ブログ - XoopsObject

XoopsObject

カテゴリ : 
開発用メモ » XCL開発資料
執筆 : 
masa 2010/5/16
XoopsObjectはデータにアクセスする際のデータオブジェクトのインスタンスになるクラス

AbstractXoopsObject -> XoopsObject と継承している

・AbstractXoopsObject(純粋抽象クラス)
setNew()
unsetNew()
isNew()
initVar($key, $data_type, $default, $required, $size)
assignVars($values)
set($key, $value)
get($key)

・XoopsObject
フィールド変数を配列としてメンバ変数 vars に保持する。
フィールド変数は以下のプロパティ(実際には連想配列)を持つ
value
required
data_type
maxlength
changed
options

required や maxlength はDBのスキーマと関連する部分だが、このレベルで保持して管理するのが必須のものとは思わないが...
changed は意味は分かるが、cleanVars() で使うのはちょっと...
options はここにあるべきものではないかも...
getVar('show') や getVar('preview') というのもどうかなぁ...
dohtml,doxcode,dosmiley,... などがあるのはすでにUI部分がここに侵略していると言うことで...楽しくない感じ

フィールド変数の種類は以下の通り
XOBJ_DTYPE_STRING
XOBJ_DTYPE_TXTBOX
XOBJ_DTYPE_TEXT
XOBJ_DTYPE_TXTAREA
XOBJ_DTYPE_INT
XOBJ_DTYPE_URL
XOBJ_DTYPE_EMAIL
XOBJ_DTYPE_ARRAY
XOBJ_DTYPE_OTHER
XOBJ_DTYPE_SOURCE
XOBJ_DTYPE_STIME
XOBJ_DTYPE_MTIME
XOBJ_DTYPE_LTIME
XOBJ_DTYPE_FLOAT
XOBJ_DTYPE_BOOL

設計的にはデータ型なのかUI要素なのか分からないような項目 (TEXTBOX, TEXT, TEXTAREA) や 微妙な項目(URL, EMAIL)などがあるのがしっくり来ないところ。
実装的にはフィールド変数の種類が増やせないような実装(オブジェクトではないから...)になっているのが厳しい。

フィールド変数をオブジェクトではなく連想配列で保持しているのはパフォーマンスを考慮してのことだろうか...(もしくは PHP4の頃のオブジェクトの扱い上の問題からか...)
  • トラックバック (0)
  • 閲覧 (4972)