thinkPHP5.0框架API优化后的友好性分析


Posted in PHP onMarch 17, 2017

本文实例讲述了thinkPHP5.0框架API优化后的友好性。分享给大家供大家参考,具体如下:

新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展。

数据输出

新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Response输出就可以自动进行数据转换处理,一般来说,你只需要在控制器中返回字符串或者数组即可,例如如果我们配置:

'default_return_type'=>'json'

那么下面的控制器方法返回值会自动转换为json格式并返回。

namespace app\index\controller;
class Index
{
  public function index()
  {
    $data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
    return ['data'=>$data,'code'=>1,'message'=>'操作完成'];
  }
}

访问该请求URL地址后,最终可以在浏览器中看到输出结果如下:

{"data":{"name":"thinkphp","url":"thinkphp.cn"},"code":1,"message":"\u64cd\u4f5c\u5b8c\u6210"}

如果你需要返回其他的数据格式的话,控制器本身的代码无需做任何改变。

支持明确指定输出类型的方式输出,例如下面指定JSON数据输出:

namespace app\index\controller;
class Index
{
  public function index()
  {
    $data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
    // 指定json数据输出
    return json(['data'=>$data,'code'=>1,'message'=>'操作完成']);
  }
}

或者指定输出XML类型数据:

namespace app\index\controller;
class Index
{
  public function index()
  {
    $data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
    // 指定xml数据输出
    return xml(['data'=>$data,'code'=>1,'message'=>'操作完成']);
  }
}

核心支持的数据类型包括view、xml、json和jsonp,其他类型的需要自己扩展。

错误调试

由于API开发不方便在客户端进行开发调试,但ThinkPHP5的Trace调试功能支持Socket在内的方式,可以实现远程的开发调试。

设置方式:

'app_trace' => true,
'trace'   => [
  'type'       => 'socket',
  // socket服务器
  'host'       => 'slog.thinkphp.cn',
],

然后安装chrome浏览器插件后即可进行远程调试,详细参考调试部分。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP编程网上资源导航
Oct 09 PHP
PHP5 字符串处理函数大全
Mar 23 PHP
PHP中其实也可以用方法链
Nov 10 PHP
php 计划任务 检测用户连接状态
Mar 29 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
如何使用PHP给图片加水印
Oct 12 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 #PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 #PHP
PHP中类的自动加载的方法
Mar 17 #PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 #PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 #PHP
php正则判断是否为合法身份证号的方法
Mar 16 #PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 #PHP
You might like
php将文本文件转换csv输出的方法
2014/12/31 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
python开发之字符串string操作方法实例详解
2015/11/12 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
HTML5 新事件 小结
2009/07/16 HTML / CSS
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
计算机专业学生的自我评价
2013/12/15 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
求职简历自我评价范例
2014/03/12 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
学习型班组申报材料
2014/05/31 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
房产公证委托书范本
2014/09/20 职场文书
2014年绿化工作总结
2014/12/09 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记