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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
繁体中文转换为简体中文的PHP函数
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 03 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统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
php计算title标题相似比的方法
2015/07/29 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
python Celery定时任务的示例
2018/03/13 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python使用gRPC传输协议教程
2018/10/16 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
鸿星尔克广告词
2014/03/21 职场文书
学术诚信承诺书
2014/05/26 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
推普周活动总结
2014/08/28 职场文书
模范班主任事迹材料
2014/12/17 职场文书
大学生党性分析材料
2014/12/19 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
学风建设主题班会
2015/08/17 职场文书
个人工作决心书
2015/09/22 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android