День добрый! Ребят, подскажите в чем тут разница? и в каких ситуация, какой способ предпочтительнее использовать, есть ли вообще разница?
Вариант 1
class ControllerNomenclature extends Controller
{
private $products;
public function __construct(ModelProducts $products)
{
parent::__construct();
$this->products = $products;
}
public function index()
{
return $this->products->getProducts();
}
}
Вариант 2
class ControllerNomenclature extends Controller
{
public function index(ModelProducts $products)
{
return $this->products->getProducts();
}
}
Насколько я понимаю, то в первом случае, при инициализации объекта, я буду обязан передать в него параметры иначе - ошибка. А во втором случае, я буду обязан передать параметры в метод index. Но все еще, смогу, спокойно инициализировать объект.
Какая еще принципиальная разница, здесь есть? В каких случаях использовать тот или иной подход, возможно, есть конкретные рекомендации?
Большое спасибо за ваши ответы! Уж больно, сильно я хочу превратиться из домохозяйки в хотя бы джуниор php)