Size: a a a

2021 March 11

MM

Maksim Masiukevich in PHP
Читай ответ про макдональдс
источник

VC

Vladimir Chernyshev in PHP
Artem Molotov
Так это и будет инъекцией. Видимо, ты имеешь ввиду ручную. От отсуствия автовайринга по аннотации инъекцией зависимости это не перестаёт быть.
инъекция зависимости в объект для меня в этом контексте - это запись ее в стейт

проборос или пускай инёекция в метод - просто дернуть если есть и вон из стэка, никаких $this->logger = $logger
источник

AM

Artem Molotov in PHP
Цепочка обязанностей. Кто-то в цепочке отдекорировал и отдал объект дальше. Под конец кому-то нужен неотдекорированный предыдщими обработчиком объект, включая передачу такого же или другого дальше.
источник

AM

Artem Molotov in PHP
Условно "повесить лог для части обработчиков и снять под конец"
источник

MM

Maksim Masiukevich in PHP
Artem Molotov
Цепочка обязанностей. Кто-то в цепочке отдекорировал и отдал объект дальше. Под конец кому-то нужен неотдекорированный предыдщими обработчиком объект, включая передачу такого же или другого дальше.
Звучит, как код, написанный дауном
источник

AM

Artem Molotov in PHP
если на примере лога
источник

AM

Artem Molotov in PHP
Maksim Masiukevich
Звучит, как код, написанный дауном
А какие варианты сделать иначе-то?
источник

AM

Artem Molotov in PHP
Vladimir Chernyshev
инъекция зависимости в объект для меня в этом контексте - это запись ее в стейт

проборос или пускай инёекция в метод - просто дернуть если есть и вон из стэка, никаких $this->logger = $logger
а, понял что ты имеешь ввиду
источник

MM

Maksim Masiukevich in PHP
Artem Molotov
А какие варианты сделать иначе-то?
Если кто-то в цепочке декорирует объект, он делает это:

1. Для себя
2. Передает новый объект, с которыми работают прочие. Но это порочная практика
источник

ВУ

Валентин Удальцов... in PHP
Artem Molotov
Цепочка обязанностей. Кто-то в цепочке отдекорировал и отдал объект дальше. Под конец кому-то нужен неотдекорированный предыдщими обработчиком объект, включая передачу такого же или другого дальше.
> Под конец кому-то нужен неотдекорированный предыдщими обработчиком объект, включая передачу такого же или другого дальше.

это противоречит самой идее декорации)
декорируют по интерфейсу, а значит клиент не парится, что там под капотом
источник

ВУ

Валентин Удальцов... in PHP
и цепочка обязанностей тут вообще не при чем, это разные паттерны
источник

AM

Artem Molotov in PHP
Maksim Masiukevich
Если кто-то в цепочке декорирует объект, он делает это:

1. Для себя
2. Передает новый объект, с которыми работают прочие. Но это порочная практика
Для себя — да, совершенно другой кейс и описанное мной в таком случае нет смысла делать.

Передаёт дальше новый — да. И вот хз как сделать иначе так, что бы было норм
источник

MM

Maksim Masiukevich in PHP
У тебя ровно теже самые минусы, что и у мутабельных структур. Ты не можешь просто по пути что-то менять
источник

AM

Artem Molotov in PHP
Валентин Удальцов
и цепочка обязанностей тут вообще не при чем, это разные паттерны
Спасибо, я это знаю. Я говорю о ситуации, когда они совмещаются для достижения какой-то цели.
источник

AM

Artem Molotov in PHP
Валентин Удальцов
> Под конец кому-то нужен неотдекорированный предыдщими обработчиком объект, включая передачу такого же или другого дальше.

это противоречит самой идее декорации)
декорируют по интерфейсу, а значит клиент не парится, что там под капотом
Осталось узнать как решить цель. Опциональная зависимость с возможностью замены могла бы с этим "помочь", но тут говорят, что это порочная практика.
источник

ВУ

Валентин Удальцов... in PHP
опциональные зависимости не должны быть опциональными с точки зрения рантайма
источник

ВУ

Валентин Удальцов... in PHP
а если тебе надо передать какой-то контекст, это лучше делать в параметре
источник

AM

Artem Molotov in PHP
Валентин Удальцов
опциональные зависимости не должны быть опциональными с точки зрения рантайма
Для этого могут быть использованы зависимости с стейтом по умолчанию (что бы нула не было), если я верно понял. Говорили об этом выше.
источник

AM

Artem Molotov in PHP
Валентин Удальцов
а если тебе надо передать какой-то контекст, это лучше делать в параметре
в параметре метода?
источник

ВУ

Валентин Удальцов... in PHP
параметром как у @desper1989 контекст в php-service-bus 😉
источник