私はコントローラとモデルを可能な限りスリムに保つためにLaravelに依存性注入をしようとしています。目標は、特定のモデルに起因するデータのフェッチを処理するためのリポジトリを持つことです。この目的を達成するために Laravel Controller Dependency Injection
は、私はドキュメント here、人気Laravelの定型 hereからの例に従うことをしようとしている。しかし$user
がどこから来ている私は理解していません。
だから我々は2つのファイルを持っている定型を見て:ProfileController
here
抜粋を下に
:
use App\Repositories\Frontend\Access\User\UserRepository;
/**
* Class ProfileController.
*/
class ProfileController extends Controller
{
/**
* @var UserRepository
*/
protected $user;
/**
* ProfileController constructor.
*
* @param UserRepository $user
*/
public function __construct(UserRepository $user)
{
$this->user = $user;
}
これは、ドキュメントに記載された依存性注入のようにたくさん見えます、これは次のとおりです。
class UserController extends Controller {
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
{
$this->users = $users;
}
私の問題は、$user
がどこから来ているのか分かりません。
UserRepositoryには、クラスそのもののパラメータとして$ユーザーが定義されていません。どこのコードにはAuth::user()
がないので、ユーザーインスタンスがどこから来ているのか混乱しています。
'$ user'は変数の名前です。 '$ biggieSmalls'やその他のものもあります。変数は単に 'UserRepository'のインスタンスを保持します。 – devk
LaravelのDICは、コントローラが必要とするため、LICKを作成します。 – bassxzero
@devkそのインスタンスは変数にどこに割り当てられていますか?私はそれが何かに名をつけることができると理解していますが、どこに割り当てられているのか分かりません。それはタイプヒントではないのですか? –