我对如何使用合同感到困惑。我认为那是因为我没有使用单元测试,所以对我来说合同是如何工作的并不明显。
让我们看看这段代码:
use Illuminate\Contracts\Auth\Guard;
...
public function __construct(Guard $auth)
{
$this->auth = $auth;
$this->middleware('guest', ['except' => 'getLogout']);
}
public function postRegister(RegisterRequest $request)
{
// Registration form is valid, create user...
$this->auth->login($user);
return redirect('/');
}
那么我怎么知道哪个类
login
在这一行中实现了契约方法:$this->auth->login($user)
?如果我想使用自己的课程,我该如何更改课程?在 laravel 4 中我写
Auth::user()
了一个例子,我在任何控制器的任何地方都使用了它并且它工作。现在我应该在控制器方法中注入一个合同并像这样使用它$auth->user
?另外,如果我做对了,合同将用于进行抽象。好的,那么,如果我想为自己的类构建一个新接口,然后有多个实现我的接口的类,我应该在哪里编写代码?我想不出一个例子,但让我们想象一下我需要实现一个用于启用/禁用灯的接口,我有两种方法,比如
on()
andoff()
我有多种方法可以做到这一点。我需要为此创建新合同吗?