有这个控制器:
<?php
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
class AuthController extends Controller
{
/**
* Handle the incoming request.
*
* @return Response
*/
public function __invoke(Request $request): Response
{
return response(auth()->user());
}
}
这就是它所拥有的一切。解释为什么这样做,为什么它比调用同一用户的单独函数更好?为什么根本需要调用?它是如何使用的?
__invoke 用于像函数一样调用类。当类中只有一个方法可以调用时,这对于简化调用是必要的。
这也不好,它只是允许路由器不指定特定方法
__invoke 用于只有一个公共方法的类,以便于引用。
此外,实现 __invoke 的类可以用作回调。
例如:
在普通类的情况下,您必须像这样指定方法: