xoops2開發日誌-XoopsObject與XoopsObjectHanlder

 Thu, 26 Jan 2006 15:35:37 +0800

為了方便開發者建立容易存取資料的類別,Xoops提供了兩個基礎類別:XoopsObject與XoopsObjectHanlder。

1. XoopsObject

XoopsObject提供了一些基本的屬性與方法,來建立存取物件內的變數。XoopsObject所使用的方法就是用一個工廠類別XoopsObjectHandler來負責XoopsObject的生成,並提供標準的資料庫存取方式。

基本上,$XoopsObject->vars這個屬性(一個關連陣列)會存放所有資料表欄位的資料。在使用前先要用initVar方法來初始化vars中的元素。他已經定義好了一些常數來指定變數的種類,還可以指定一些更詳細的變數設定,例如資料的長度等。接著可以用assignVar或是assignVars來指定變數的值。

XoopsObject會使用TextSanitizer類別來對變數的內容進一步處理,根據使用的狀況例如在變數有透過Get、Post、Cookie傳遞的狀況時,作一些額外的處理,過濾不合法的tags,另外還又針對bbcode還有avatar系統進來的語法作特別處理等等。

2. XoopsObjectHandler

其實這裡的方法都是空的(抽象方法,但是PHP4並沒有支援),使用他定義好的方法再來撰寫實際物件的工廠類別。這裡定義了四個方法:

  1. create
  2. get
  3. insert
  4. delete

使用create可以建立一個新的物件實體。使用get,以id為參數,可以從資料庫中取出物件的屬性,然後建立這個物件的實體。使用insert可以將物件存入資料庫中。使用delete可以從資料庫中刪除這個物件實體的資料。