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 删除记录同时删除图片文件的实现代码
May 12 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP实现简单计算器小程序
Aug 28 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
php使用curl存储cookie的示例
2014/03/31 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
短信提示使用 特效
2007/01/19 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
护士专业推荐信
2013/11/02 职场文书
区域总监的岗位职责
2013/11/21 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
作风建设剖析材料
2014/10/06 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang