Часто вижу в Laravel код типа такого:
public function __construct(Topic $topic)
{
parent::__construct();
$this->topic = $topic;
}
Хотел поинтересоваться - откуда берётся переменная $topic и где она объявляется? Я просто вообще не могу понять в каком месте класс контроллера объявляется и откуда берётся переменная.
Вот ещё несколько примеров контроллеров:
public function __construct(InvoiceRepository $invoiceRepo)
{
$this->invoiceRepo = $invoiceRepo;
}
public function __construct(Mailer $mailer, InvoiceRepository $invoiceRepo, ClientRepository $clientRepo, TaxRateRepository $taxRateRepo)
{
parent::__construct();
$this->mailer = $mailer;
$this->invoiceRepo = $invoiceRepo;
$this->clientRepo = $clientRepo;
$this->taxRateRepo = $taxRateRepo;
}
public function __construct(AccountRepository $accountRepo, UserMailer $userMailer, ContactMailer $contactMailer)
{
parent::__construct();
$this->accountRepo = $accountRepo;
$this->userMailer = $userMailer;
$this->contactMailer = $contactMailer;
}