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 27 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
php操作mongoDB实例分析
Dec 29 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Python中bisect的使用方法
2019/12/31 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
高中毕业自我鉴定
2013/12/19 职场文书
生日邀请函范文
2014/01/13 职场文书
公司合作协议范文
2014/10/01 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
新教师个人总结
2015/02/06 职场文书
酒店宣传语大全
2015/07/13 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB
利用Java连接Hadoop进行编程
2022/06/28 Java/Android