Size: a a a

2021 July 21

R

Roma in symfony
Ну это понятно
источник

R

Roma in symfony
Подскажите в каких случаях надо писать через DI а в каких через инициализацию
источник

D

Dmitry in symfony
попробуйте протестировать второй случай если Service в конструкторе обращается на удаленный сервер
источник

👤U

👤 User in symfony
Если это конструктор сущности то new. Если сервис, то di.
источник

VM

Volodymyr Melko in symfony
а ты уверен, что тебе нужен Term?
источник

Р

Роман in symfony
Добавьте для Service пяток параметров в конструктор,
а потом пару таких сервисов,
а потом еще этому сервису свой сервис в конструктор,
и мысли сразу в верное русло придут

ну как минимум для одной причины
источник

R

Roma in symfony
Если в сервисе нет параметров?будет ли ошибкой такая инициализация?
источник

D

Dmitry in symfony
это плохое обоснование, я бы его перефразировал
если new не создает сайд эффектов, то его можно обьявить прямо в конструкторе, например ArrayCollection
источник

D

Dmitry in symfony
да, будет
источник

A

Arseni in symfony
сильно извиняюсь, оказывается у меня всё работало, term нужен. Я просто не на тот метод смотрел)
источник

D

Dmitry in symfony
опять же нужно смотреть на связность кода, что это за new в конструкторе, вообще я стараюсь никогда не использовать new в конструкторах да и где бы то ни было, если это не "стабы"
источник

R

Roma in symfony
Почему будет ошибкой следующая запись:

public function __construct()
{
   $this->redis = new Predis($url);
}

Дайте пожалуйста аргументированное мнение, или ссылку почитать
источник

D

Dmitry in symfony
я вам уже выше описал, попробуйте это протестировать
источник

МФ

Максим Федоров... in symfony
не совсем корректный пример, тк вы привели пример из работы ORM, которая работает через рефлексию (считай черную магию) и ее устройство закрыто от клиенсткого кода
источник

D

Dmitry in symfony
да это я просто привел пример класса без сайд эффектов, можете заменить на new DateTime
источник

МФ

Максим Федоров... in symfony
"создает или нет new сайд эффект" — это может быть функцией от времени, сейчас при написании кода не создает, потом создаст
источник

D

Dmitry in symfony
это тоже будет сайд эффект - функция от времени
источник

D

Dmitry in symfony
если уж на то пошло то само время это уже сайд эффект ибо как может быть разным
источник

D

Dmitry in symfony
может быть системное, может быть из удаленного источника и тп
источник

D

Dmitry in symfony
но не будем углубляться в это
источник