调试模式


开发环境与生产环境有 3 处需要进行切换的地方,分别是:

  1. application/config.php配置中的app_debug,当值为true时表示应用调试模式。

  2. application/database.php配置中的debug,当值为true时表示数据库调试模式。

  3. application/api/config.php配置中的api_debug,当值为true时表示API调试模式。

以上 3 处不一定要全部修改,而是根据自己的需要进行切换,
app_debug 与 debug 配置含义请参考 ThinkPHP 官方说明。


api_debug值为true时调用接口不需要授权,并且可以直接调用 API 控制器中设定的函数,

下面分别说明下模拟授权快捷调用

[ 模拟授权 ]
在调试模式下不需要授权,但系统依旧需要调用者的身份信息,所以我们通过模拟来进行。

application/api/controller/CareyShop.php大约 360 行开始,找到

  1. // 初始账号数据
  2. $GLOBALS['client'] = [
  3. 'type' => config('ClientGroup.' . ($this->apiDebug ? 'user' : 'visitor'))['value'],
  4. 'group_id' => $this->apiDebug ? AUTH_CLIENT : AUTH_GUEST,
  5. 'client_id' => $this->apiDebug ? 1 : 0,
  6. 'client_name' => $this->apiDebug ? 'CareyShop' : '游客',
  7. ];

该状态表示顾客组中的一个普通会员,如果需要切换到超级管理员则按如下修改:

  1. // 初始账号数据
  2. $GLOBALS['client'] = [
  3. 'type' => config('ClientGroup.' . ($this->apiDebug ? 'admin' : 'visitor'))['value'],
  4. 'group_id' => $this->apiDebug ? AUTH_SUPER_ADMINISTRATOR : AUTH_GUEST,
  5. 'client_id' => $this->apiDebug ? 1 : 0,
  6. 'client_name' => $this->apiDebug ? 'Admin' : '游客',
  7. ];

[ 快捷调用 ]

以上截图表示一个 API 调用控制器的方法路由器,在非调试模式下,调用接口必须:
http://host/api/v1/ads/method/get.ads.list/

而在调试模式下可以直接调用某个函数,比如:
http://host/api/v1/ads/method/getAdsList/

文档更新时间: 2018-07-05 23:55