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 文件上传源码分析(RFC1867)
Oct 30 PHP
php实现的漂亮分页方法
Apr 17 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
php数组保存文本与文本反编成数组实例
Nov 13 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
PHP如何将XML转成数组
Apr 04 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
php中bind_param()函数用法分析
Mar 28 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 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学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
用Python实现一个简单的线程池
2015/04/07 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python序列类型种类详解
2020/02/26 Python
Python celery原理及运行流程解析
2020/06/13 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
英国假发网站:Hothair
2018/02/23 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
上海期货面试题
2014/01/31 面试题
2015年幼儿园毕业感言
2014/02/12 职场文书
学生会主席演讲稿
2014/04/25 职场文书
村庄绿化方案
2014/05/07 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
企业党员一句话承诺
2014/05/30 职场文书
团拜会策划方案
2014/06/07 职场文书
关于保护环境的标语
2014/06/09 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
汇报材料怎么写
2014/12/30 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书