讀書筆記(Master joomla1.5第三章The database:JTable 04)

JTable 官方解釋

/**
 * Abstract Table class//抽象表類 個人覺得就是dao的父類
 *
 * Parent classes to all tables.
 *
 * @abstract
 * @package  Joomla.Framework
 * @subpackage Table
 * @since  1.0
 * @tutorial Joomla.Framework/jtable.cls
 */

它是每個表的父類,看得出它完全基于表來設計(...).將數據庫連接$db 作為實例變量.

文章講:為了使用JTable:getInstance()//返回表的實例

實際上在JTable 的function &getInstance( $type, $prefix = 'JTable', $config = array() ) 實現里頭

反射去實例化了具體的表對象.

$instance = new $tableClass($db);
  //$instance->setDBO($db);

  return $instance;

 

各表子類必須override 構造方法. 看一下Aro table

/**
 * Aro table
 *
 * @package  Joomla.Framework
 * @subpackage  Table
 * @since 1.0
 */
class JTableARO extends JTable
{
 /** @var int Primary key */
 var $id      = null;

 var $section_value = null;

 var $value   = null;

 var $order_value = null;

 var $name   = null;

 var $hidden   = null;

 function __construct( &$db )
 {
  parent::__construct( '#__core_acl_aro', 'aro_id', $db );//表名、主鍵、數據庫連接對象

//奇怪 復合主鍵要怎么處理呢?
 }
}

//to be continued...

你可能感兴趣的:(DAO)