澳门新蒲京娱乐


thinkphp网页模版中调用函数实例

thinkphp 3.2跟3.1 区别

thinkphp在app接口开发过程中的通讯数据的封装,PHP开发APP接口实战006

举个例子 在thinkphp的Home分组下的Index控制器里我们新增一个test方法

  1. 添加函数 listAction(), 实现返回列表数据接口示例。接口地址:
<?php  namespace Home\Controller;  use Think\Controller;  class IndexController extends Controller {      public function index(){          $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div  > <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>[ 您现在访问的是Home模块的Index控制器 ]</div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');      }      public function  test(){          $data = array(              'id'=>2,              'username'=>'明之暗夜',              'info'=>array('age'=>24,'address'=>'学府路','url'=>'http://cnblogs.com/dmm888')          );          if($data){              $this->apiReturn(200,'读取用户信息成功',$data,xml);          }      }          }

其实thinkphp已经把很多我们要用到的都写出来了,我们只需要稍作修改即可灵活的返回我们需要的数据。

在前面的章节里我们已经讲了自定异常处理方法。「PHP开发APP接口实战003」自定义异常处理

 

  1. 添加函数 errorAction(), 实现返回错误数据接口示例。接口地址:
This XML file does not appear to have any style information associated with it. The document tree is shown below.  <think>  <status>200</status>  <message>读取用户信息成功</message>  <data>  <id>2</id>  <username>明之暗夜</username>  <info>  <age>24</age>  <address>学府路</address>  <url>http://cnblogs.com/dmm888</url>  </info>  </data>  </think>

为了演示,这里直接抛出异常。我们还可以结合
try{} catch{}来处理异常信息。

{"status":200,"message":"\u8bfb\u53d6\u7528\u6237\u4fe1\u606f\u6210\u529f","data":{"id":2,"username":"\u660e\u4e4b\u6697\u591c","info":{"age":24,"address":"\u5b66\u5e9c\u8def","url":"http:\/\/cnblogs.com\/dmm888"}}}
  1. 添加函数 exceptionAction(),
    自动捕获异常并返回异常信息接口示例。接口地址:

还有很多可以拓展的 就不一一列举了  如果有什么好的意见可以直接给我提 

首先,修改Thinkphp/Library/Controller.class.php  在其中增加一个函数
apiReturn();

列表数据接口主要用于返回列表数据,如果有分页,需要返回
page 当前页码 , limit 分布大小, count 数据总条数 等分页参数。

<?php  namespace Home\Controller;  use Think\Controller;  class IndexController extends Controller {      public function index(){          $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div  > <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>[ 您现在访问的是Home模块的Index控制器 ]</div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');      }      public function  test(){          $data = array(              'id'=>2,              'username'=>'明之暗夜',              'info'=>array('age'=>24,'address'=>'学府路','url'=>'http://cnblogs.com/dmm888')          );          if($data){              $this->apiReturn(200,'读取用户信息成功',$data);          }      }          }

接口返回结果:

在为app开发接口过程中,我们必不可少的要为app前端工程师们提供返回的数据,如何灵活快速又易懂的返回他们需要的数据是非常关键的。

接口返回结果:

 

注意:必须将数组对象强转为 Object 。接口才能正常返回对象数据。

要返回xml只要在后面添加参数就可以

<?phpclass IndexController extends BaseController{ // 初始化的函数 public function initialize() { parent::initialize(); }}

 在浏览器访问这个接口时可以看到返回的信息

示例代码下载:链接: 密码:mmt7


 public function itemAction() { $item = ['id' => 1, 'name' => 'item1']; Output::instance($this->response)->success$item); }

增加了这样一个函数后,我们就可以很轻松的在任意控制器下使用了

 public function listAction() { $items = [ ['id' => 1, 'name' => 'item1'], ['id' => 2, 'name' => 'item2'], ['id' => 3, 'name' => 'item3'], ]; $list = [ 'page' => 1, 'limit' => 10, 'count' => 3, 'items' => $items, ]; Output::instance($this->response)->success; }

 

<?phpuse Phalcon\Mvc\Controller;class BaseController extends Controller{ // 初始化的函数 public function initialize() { }}
 /**   * [apiReturn 用于给app提供接口使用 带有请求结果状态表示,和结果提示,默认返回json]   * @param  [number] $status  [请求结果的状态标识,设定后要在文档中给予说明]   * @param  string $message [请求结果的提示语句]   * @param  [array] $data    [请求返回的数据,app前端需要的数据]   * @param  [string] $type    [要返回的数据类型,支持json,xml,默认返回json]   * @return [json或xml]          [返回数据]   */      protected function apiReturn($status,$message='',$data,$type){            if(!is_numeric($status) || !is_string($message) ){              $this->apiReturn('400','参数错误');          }          $res = array();          $res['status'] = $status;          $res['message'] = $message;          $res['data'] = $data;            if(in_array($type, array('json','xml'))){              $this->ajaxReturn($res,$type);          }else{              $this->ajaxReturn($res);          }                }
{ "status": "1", "list": { "page": "1", "limit": "10", "count": "3", "items": [ { "id": "1", "name": "item1" }, { "id": "2", "name": "item2" }, { "id": "3", "name": "item3" } ] }}

 这里的数字200可以自定义的 但是我们要在接口说明文档中给予说明。

前面,我们已经准备好 Output 类,本章接着讲如何调用 Output
类来实现基础示例接口。「PHP开发APP接口实战004」响应参数基础说明「PHP开发APP接口实战005」基础示例接口的实现一

BaseController
类是所有接口控制器的基类。主要实现验证签名,身份认证等一些公共操作。

返回的数据如下

在 /app/controllers 目录下创建一个基类控制器
BaseController.php,基类控制器继承自Phalcon\Mvc\Controller
并创建一个初始化函数 initialize()

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图