契約書の使い方に困っています。これは、単体テストを使用していないため、コントラクトがどのように機能するかが明らかではないためだと思います。
このコードを見てみましょう:
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()
みてください。そのために新しい契約を作成する必要がありますか?