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 相关文章推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
关于js与php互相传值的介绍
Jun 25 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
Oct 15 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
Laravel模糊查询区分大小写的实例
Sep 29 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对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
js实现五星评价功能
2017/03/08 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
python实现批量修改文件名代码
2017/09/10 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
在python中pandas的series合并方法
2018/11/12 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
中学生团员自我评价分享
2013/12/07 职场文书
数字化校园建设方案
2014/05/03 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
矛盾论读书笔记
2015/06/29 职场文书
小学英语听课心得体会
2016/01/14 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
python批量更改目录名/文件名的方法
2021/04/18 Python
基于python制作简易版学生信息管理系统
2021/04/20 Python
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js