牛骨文教育服务平台(让学习变的简单)

第八课 自定义类,API类说明

之前我们讲了控制器,数据库操作等程序的基本的语法和规则,在实际开发的过程,我们会把一些常用的操作封装成一个类去做调用,减少代码的冗余,减少后期程序的维护成本,这节课就来讲解一下,iWebShop自定义类,API类的做法。

一、自定义类

在iWebShop中,几乎所有的自定义类都是直接可以使用的,只要在classes目录下直接创建对应类文件,就可以在程序中直接调用,不用做引入之类的。

在classes下创建sunzoontest.php,代码如下:

<?php
class SunzoonTest
{
    public function Test()
	{
		return "自定义类的输出";
	}
}
?>

在Controller的类中使用该类的代码如下:

$test=new SunzoonTest();
echo $test->test();

代码输出: 自定义类的输出

二、API类

除了自定义的类以外,classes目录下还有一个api目录,这个目录下放一些常用的数据查询类,可以直接调用。

$data = Api::run(接口名字,参数...);

接口名字定义于 api_resource.php 文件中,有2种方式实现:query标签式和 class 自定义式,以下代码为query的定义方法:

"getAnnouncementList"=>array(
		"query"=>array("name"=>"announcement","order"=>"id desc","limit"=>10)
	),

在代码中直接调用:

$data = Api::run(‘getAnnouncementList’);

以下代码为class 自定义式的的定义方法:

//用户中心-我的代金券
	"getPropList" => array(
		"file" => "ucenter.php","class" => "APIUcenter"
	),

在api目录中找到ucenter.php,打开的找到以下代码:

//用户中心-我的代金券
	public function getPropList($ids){
		$page = IReq::get("page") ? IFilter::act(IReq::get("page"),"int") : 1;
		$query = new IQuery("prop");
		$query->where  = "id in(".$ids.") and is_send = 1";
		$query->page   = $page;
		return $query;
	}

这就是接口的定义。

什么时候用query定义,什么时候用class 自定义式?

如数据不需要判断,直接传参数就能取到,就使用query,方便快捷

如在程序中还要加入大量的业务逻辑,那么使用class自定义式,这样比较清晰

由于query越多,api_resource.php这个文件就越长,所以从易于维护的角度考虑,使用class自定义式则是更好的一种方法。

如有不明白的地方,留言或是加入我们 “三众技术QQ交流群”一起讨论

关于我们

三众科技资讯平台——大道至简,悦你所阅!
>本教程由三众简悦原创,转载请注明出处,作者:bobball,由bobo整理成牛骨文书籍

三众技术交流群:543102562

欢迎大家加入我们,共同讨论IT,互联网技术。同时可以扫描下面的二维码关注我们,谢谢!

三众科技服务号