Joomla API简介

用就是提供关系型数据库到对象的一个映射,将对数据库的操作转化为对数据对象的操作,实现数据库的CRUD(create,read,update,delete)四种操作。他一共提供22个接口方法,其中我比较常用的也是开发组件必须搞清楚的是,store(),check(),bind(),load()四种方法。

1.mosDBTable类如何使用?

一般来说通过扩展基类mosDBTable类我们可以得到一个与我们数据库中真实的表结构相关的扩展类,比如核心组件com_contact中的contact.class.php文件中就是定义该组件所使用的数据表相关的mosDBTable类。而对数据库的操作都可以通过这个类来完成。其中一个数据表类如下

class mosContact extends mosDBTable {
 /** @var int Primary key */
 var $id     = null;
 /** @var string */
 var $name     = null;
 /** @var string */
 var $con_position   = null;
 /** @var string */
 var $address    = null;
 /** @var string */
 var $suburb    = null;
 /** @var string */
 var $state     = null;
 /** @var string */
 var $country    = null;
 /** @var string */
 var $postcode    = null;
 /** @var string */
 var $telephone    = null;
 /** @var string */
 var $fax     = null;
 /** @var string */
 var $misc     = null;
 /** @var string */
 var $image     = null;
 /** @var string */
 var $imagepos    = null;
 /** @var string */
 var $email_to    = null;
 /** @var int */
 var $default_con   = null;
 /** @var int */
 var $published    = null;
 /** @var int */
 var $checked_out   = null;
 /** @var datetime */
 var $checked_out_time  = null;
 /** @var int */
 var $ordering    = null;
 /** @var string */
 var $params    = null;
 /** @var int A link to a registered user */
 var $user_id    = null;
 /** @var int A link to a category */
 var $catid     = null;
 /** @var int */
 var $access    = null;

 /**
 * @param database A database connector object
 */
 function mosContact() {
  global $database;
  $this->mosDBTable( '#__contact_details', 'id', $database );
 }

 function check() {
  $this->default_con = intval( $this->default_con );
  return true;
 }
}


这个类与jos_contact_details数据表是一一对应的,其中类的成员变量就是数据表的字段,正因有如此的对应所以我们通过类的一些方法就可以直接操作数据库,这个就是数据库自动化操作的一个基本原理。

2. bind()方法。
该方法提供了数据绑定功能,将数据绑定到mosDBTable数据对象上方便后面与数据库的交互操作。最实际的应用,当通过表单提交上来了数据之后,我们可以通过该方法将表单数据首先绑定到数据对象上,然后再进一步操作数据库。如下的代码就是将表单数据绑定到数据对象上,有点类似JAVA中的BEAN FORM.

$row->bind( $_POST)


该方法返回”BOOLEAN“类型值。

3. store()方法,将数据对象直接存入数据库。避免了我们再去写INSERT这样的SQL的繁琐工作,一句store足够了,怎么样是不是简单许多。

$row->store();


返回值一样是”BOOLEAN“值。

3.check()方法提供了数据对象的数据校验,如下:

 function check() {
  // check for valid client name
  if (trim($this->name == '')) {
   $this->_error = _BNR_CLIENT_NAME;
   return false;
  }

  // check for valid client contact
  if (trim($this->contact == '')) {
   $this->_error = _BNR_CONTACT;
   return false;
  }

  // check for valid client email
  if ((trim($this->email == '')) || (preg_match("/[/w/./-]+@/w+[/w/./-]*?/./w{1,4}/", $this->email )==false)) {
   $this->_error = _BNR_VALID_EMAIL;
   return false;
  }

  return true;
 }


以上函数是bannar组件中的一个验证方法,函数实现的功能比较简单就是对name,contact,email三个字段进行检查是否为空,如空则返回错误值。这个方法常用于表单提交过程的验证(服务器端验证),不过对于表单来说尽量还是使用JS在客户端就验证一下。

4. load(),前面几个方法都是往数据添加数据时候我们经常使用的,该方法是从数据库读取数据的时候使用。他需要一个参数数据表的id字段,通过该方法可以将数据表的数据直接添加到数据对象然后方便我们然后方便我们获取。

$cat = new mosCategory($database);
 $cat->load((int)$link->catid);


以上是weblink组件中用于显示某分类具体信息的两句,前一句实例化数据对象,后一句调用load方法绑定数据到数据对象。在接下来的调用数据只要输入$cat->name,$cat->title等等即可。

以上四类方法包含了读写数据库和表单验证的一般方法,当然还有其他18类方法没有介绍,有兴趣的可以参考官方文档看看其他的方法具体的使用。 http://help.joomla.org/content/category/12/108/125/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值