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 相关文章推荐
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
php session劫持和防范的方法
Nov 12 PHP
ini_set的用法介绍
Jan 07 PHP
php获取域名的google收录示例
Mar 24 PHP
PHP CURL获取返回值的方法
May 04 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
php实现图片缩略图的方法
Mar 29 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
PHP实现时间日期友好显示实现代码
Sep 08 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
Windows7下的php环境配置教程
2015/02/28 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jquery弹出框的用法示例(2)
2013/08/26 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
python使用建议技巧分享(三)
2020/08/18 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
办理护照介绍信
2014/01/16 职场文书
保护动物倡议书
2014/04/15 职场文书
统计学教授推荐信
2014/09/18 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
Oracle 触发器trigger使用案例
2022/02/24 Oracle