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...