Laravel 2 способа, написать одно и тоже? День добрый! Ребят, подскажите в чем тут разница? и в каких ситуация, какой способ предпочтительнее использовать, есть ли вообще разница?
Вариант 1class ControllerNomenclature extends Controller
{
private $products;
public function __construct(ModelProducts $products)
{
parent::__construct();
$this->products = $products;
}

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

21 Авг 2019 в 06:58
155 +1
0
Ответы
1

Да, вы правильно поняли разницу между двумя способами.

Вариант 1 использует Dependency Injection в конструкторе класса, что позволяет легко обменивать зависимости на другие классы при создании объекта. Этот способ часто используется, когда класс зависит от других классов или сервисов внутри себя.

Вариант 2 также использует Dependency Injection, но уже в методе index. Этот способ удобен, когда нужно передавать зависимости только в конкретные методы, а не при создании объекта.

Оба способа являются хорошими практиками программирования. Выбор между ними зависит от конкретной ситуации и предпочтений разработчика. Часто рекомендуется использовать Dependency Injection для управления зависимостями в приложении, так как это делает код более гибким, тестируемым и поддерживаемым.

Вам стоит выбирать тот способ, который лучше соответствует структуре вашего приложения и требованиям проекта. Удачи в вашем пути к развитию в сфере PHP программирования!

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир