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新手上路(三)
Oct 09 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php连接数据库代码应用分析
May 29 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
php实现的任意进制互转类分享
Jul 07 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 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+APACHE实现用户论证的方法
2006/10/09 PHP
php中$this->含义分析
2009/11/29 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
javascript实现连续赋值
2015/08/10 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
Python对象体系深入分析
2014/10/28 Python
Python中的filter()函数的用法
2015/04/27 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
深入浅析Python传值与传址
2018/07/10 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
大学生村官事迹材料
2014/01/21 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
干部下基层实施方案
2014/03/14 职场文书
提拔干部考察材料
2014/05/26 职场文书
护理专业自荐书
2014/06/04 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android