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高级OOP技术演示
Aug 27 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
解析php中heredoc的使用方法
Jun 17 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 PHP
php使用event扩展的io复用测试的示例
Oct 20 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对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
颁奖典礼主持词
2014/03/25 职场文书
法制宣传日活动总结
2014/04/29 职场文书
质量月活动总结
2014/08/26 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
解决Redis启动警告问题
2022/02/24 Redis
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis