我在api应用中封装了几个响应返回的方法, 但用法并不友好,比如:
public function success($data = false)
{
return json([
'code' => 200,
'msg' => '操作成功',
'data' => $data
]);
}
我的本意是,在接口请求中直接 $this->success() 就能够输出响应
但在实际的操作过程中并非如此,我必须使用 return $this->success() 才能够输出数据
当然,还有一些更复杂一些的场景, 比如在checkIpVisit, checkUserVisit 中控制访问频率,超过预期频率则直接输出, 否则继续执行程序
$res = $this->checkUserVisit();
if ($res) {
return $res;
}
如果只能够做成上面这个样子的话,看起来就十分愚蠢了
有什么好一点的实现方式吗?
return是需要返回内容时使用它,调用方法,它内的 return是返回了它自己的内容,在你调用的地方只是仅仅得到了这个内容而已。
checkXXX不通过的时候可以直接throw exception,然后用exception handler捕获进行输出
这样就不会有你说的"看起来就十分愚蠢"的样子了,直接就
如果直接使用 return $this->checkUserVisit(); 的话, 验证无误会返回一个void
你自己上面写的是
那又怎么是个void?
我改成了 try { checkXX(); checkXX();... } catch (xx) {return $this->error($e->getMessage())};