本文实例讲述了thinkPHP自定义类实现方法。分享给大家供大家参考,具体如下:
1.通过Model调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php /** * 积分模型 api接口 */ class ApiModel{ private $url = 'http://js.yunlutong.com/Customer/Interface' ; public function test() { $post_data [ 'action' ] = 'sadf' ; $post_data [ 'callback' ] = '?' ; $res = request_post( $this ->url, $post_data ); $firstChar = substr ( $res ,0,1); if ( $firstChar == '?' ) { $res = substr ( $res ,2); $res = substr ( $res ,0, strlen ( $res )-1); } elseif ( $firstChar == '(' ) { $res = substr ( $res ,1); $res = substr ( $res ,0, strlen ( $res )-1); } dump(json_decode( $res ,true)); } } |
没有继承Model,否则会因为表不存在而报错。
调用,
1
2
|
$Api = D( 'Api' ); $Api ->test(); |
调用确实方便,但是总感觉有点不合理。这个D毕竟是操作数据库的。
2.通过引入类实现,把类放到ORG下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php class Integral{ private $url = 'http://js.yunlutong.com/Customer/Interface' ; public function test() { $post_data [ 'action' ] = 'sadf' ; $post_data [ 'callback' ] = '?' ; $res = request_post( $this ->url, $post_data ); $firstChar = substr ( $res ,0,1); if ( $firstChar == '?' ) { $res = substr ( $res ,2); $res = substr ( $res ,0, strlen ( $res )-1); } elseif ( $firstChar == '(' ) { $res = substr ( $res ,1); $res = substr ( $res ,0, strlen ( $res )-1); } dump( $res ); dump(json_decode( $res ,true)); } } ?> |
调用
1
2
3
|
import( "@.ORG.Api.Integral" ); $integralApi = new Integral(); $integralApi ->test(); |
配置一下,自动加载
1
|
'APP_AUTOLOAD_PATH' => '@.ORG,@.ORG.Api' , |
这样调用就方便了不管Api文件夹下有多少类,都会自动加载,不需要单个引用import("@.ORG.Api.Integral")了。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。