【发布时间】:2015-02-09 12:46:02
【问题描述】:
我对如何使用合同感到有些困惑。我认为那是因为我没有使用单元测试,所以对我来说合同是如何工作的并不明显。
让我们看看这段代码:
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()和off(),我有多种方法可以做到这一点。我需要为此创建新合同吗?
【问题讨论】:
标签: laravel-5