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'=>'操作完成']);     } }
						
					

核心支持的数据类型包括viewxmljsonjsonp,其他类型的需要自己扩展。

错误调试

由于API开发不方便在客户端进行开发调试,但ThinkPHP1Trace调试功能支持Socket在内的方式,可以实现远程的开发调试。

设置方式:

						
							'app_trace'
							=>
							true,
							'trace'
							=> [
							'type'
							=>
							'socket',
							// socket服务器
							'host'
							=>
							'slog.ThinkPHP.cn', ],
						
					

然后安装chrome浏览器插件后即可进行远程调试,详细参考调试部分。

文档最后更新时间:2018-04-25 17:52:42

文档
目录

深色
模式

切换
宽度