
Maksim
05.09.2018
15:51:35

Сергей З.
05.09.2018
15:51:38
Типа наследники натворят чего

Maksim
05.09.2018
15:52:03
да даже без наследников. Что мешает пользователям класса творить с коннектом сраные чудеса?

Alexander
05.09.2018
15:52:33

Google

Maksim
05.09.2018
15:52:47
аще никогда не делаю обязательным

f4rt~
05.09.2018
15:53:32

Maksim
05.09.2018
15:53:40
но, чую, из симфони чатика надо сюда сообщеньки форвардить... одно и то же каждый раз...

Сергей З.
05.09.2018
15:54:35
Это неудачный пример был. А что если там были бы posts. Ну и тпа какой-то setPosts в абстрактном, а в реализациях setPosts может отличаться(типа что-то докидывать) Тоже бы за такое руки оторвал?))

Luka
05.09.2018
15:54:36
привет всем, чтобы system запустить и использовать сторонюю программу на сервере надо в php 7 safe mode отключать? вроде это убрали с 5,4 ?

f4rt~
05.09.2018
15:54:44
ну в целом у меня скорей мысль была, что важно всего лишь знать где можешь объебаться
и делать когда понимаешь риски

Maksim
05.09.2018
15:55:19
так-то у меня у самого саги, к примеру - абстрактный класс. Но у них полностью приватный стейт.

f4rt~
05.09.2018
15:55:28
обычно разговор за сеттеры всегда плавно перетекает в мутабельность и всякие нехорошие штуки которые можно сделать с языком

Maksim
05.09.2018
15:56:24
не вижу ничего плохого в абстрактных классах, если человек пользуется мозгом, а не сеттит коннекты к базе данных, "что бы убрать копипасту"

f4rt~
05.09.2018
15:56:53
выдохнул спокойно :)

Google

Сергей З.
05.09.2018
15:56:55
Ок. смысл, вроде, понял

Артур Евгеньевич
05.09.2018
15:58:54
помню был у меня проект на вторйо симфе дикое легаси, так я не мог один сервис в другой заинджектить из за чего то типо циелических ависимостей многоуровневых, и один сервер не создалвася без другого
и я вставил костыл с сетером)))
но вообще да это полная хуйня

Alexander
05.09.2018
16:00:11
как по мне setter injection весьма хорошая штука, ибо мне незачем в конструкторе требовать то, что можно забить каким-нибудь Null-обджектом, то, что не сильно влияет на работу
без коннекта к бд, скорее всего класс не обойдется, а вот без какого-нибудь логера или мейлера запросто

Артур Евгеньевич
05.09.2018
16:00:46

Maksim
05.09.2018
16:00:46
Херь какая-то
От обоих, если что)

Alexander
05.09.2018
16:02:13

f4rt~
05.09.2018
16:02:48

Артур Евгеньевич
05.09.2018
16:03:08
или даже декоратор

Alexander
05.09.2018
16:03:53
да это всё равносильные выходы, в целом

Артур Евгеньевич
05.09.2018
16:04:39
а еще есть АОП))
https://habr.com/post/165329/

Maksim
05.09.2018
16:04:44
https://github.com/mmasiukevich/service-bus/blob/master/src/Sagas/Configuration/SagaEventListenerProcessor.php
Нужен логгер - передай. Не нужен - ничё не изменится. В симфоне чате все это уже сотню раз обсасывали

Артур Евгеньевич
05.09.2018
16:05:02
От обоих, если что)
мою историю нужно воспринимать с некоторой долей иронии, но тем не менее она реальная)

Alexander
05.09.2018
16:06:21

Google

Maksim
05.09.2018
16:06:58

f4rt~
05.09.2018
16:06:58
ох ты ж ебана

Артур Евгеньевич
05.09.2018
16:07:22

Maksim
05.09.2018
16:07:42
Это ошибка проектирования. Если бы там были сеттеры, лучше бы не стало
Ащн ни капли

Артур Евгеньевич
05.09.2018
16:07:58
но вообщето сервисы должны быть или стейтлесс или иммутабельными, а setLoger просто хуй кладет на этот принцип

f4rt~
05.09.2018
16:08:21

Maksim
05.09.2018
16:08:27

Alexander
05.09.2018
16:08:41

Артур Евгеньевич
05.09.2018
16:08:44

f4rt~
05.09.2018
16:08:53

Maksim
05.09.2018
16:08:57

Alexander
05.09.2018
16:09:24

Артур Евгеньевич
05.09.2018
16:09:31

Maksim
05.09.2018
16:09:32

f4rt~
05.09.2018
16:09:47

Alexander
05.09.2018
16:09:49
твой пример с Logger $logger = null — уже засирание сраным говном

Артур Евгеньевич
05.09.2018
16:09:58
Схуяли?
видимо размазав все это гавно, по всему файлу, и проекту в целом

Alexander
05.09.2018
16:10:00
которому там не место

Maksim
05.09.2018
16:10:06
Ясна. Ларавель девелопер

Google

Артур Евгеньевич
05.09.2018
16:10:35

f4rt~
05.09.2018
16:10:57
аа, ну эт хуйню я не использую
вроде, если хочешь в сф комманду запихнуть контейнер, вариант сделать тупо и быстро отнаследоваться от какой-то байды которая внутри себя это делала
upd ContainerAwareCommand во

Артур Евгеньевич
05.09.2018
16:11:33
есть у нас 1 отдельный сервис

Alexander
05.09.2018
16:12:49
вопрос: нахуя setContainer нужен? что бы потом вызывать $this->container->get?

f4rt~
05.09.2018
16:13:18
объективно говоря я слышал на протяжении двух версий что его хотят деприкейтнуть вообще

Alexander
05.09.2018
16:13:33
только то, что явно в конфиге как паблик объявлено

Admin
ERROR: S client not available

f4rt~
05.09.2018
16:13:48
да и симфони все больше пропагандирует что бы не лазить в контейнер за зависимостями а получать аргументом в метод

Артур Евгеньевич
05.09.2018
16:14:03

f4rt~
05.09.2018
16:14:24
а у меня от синтаксиса приватных сервисов бомбит, могли флаг какой-то в ямле сделать

Maksim
05.09.2018
16:14:59
Все любители впихнуть сеттеры для зависимостей должны кодить на мадженте. Им там самое место. Особенно с аргументацией а стиле "что б в конструкторе меьше было". Мусор под коврик замели и типа порядок, бгг. Ещё бОльший треш разведя

f4rt~
05.09.2018
16:15:25

Maksim
05.09.2018
16:15:40

Артур Евгеньевич
05.09.2018
16:15:44
или нет?

f4rt~
05.09.2018
16:16:04

Google

Maksim
05.09.2018
16:16:21

Артур Евгеньевич
05.09.2018
16:16:42
я вообще щас на своем отдельном проекте на пхп пишу конфиги
$services->set(DemandsElasticityAbTestService::class)
->args(
[
ref(MemberTestingMapper::class),
ref(GroupChooser::class),
]
)
->public();

Maksim
05.09.2018
16:16:49
Ток за паблик тру опять таки надо по рукам бить в 99% случаев

Артур Евгеньевич
05.09.2018
16:17:11
фигня конечно, но в отстутсвии йамла сойдет
лучше чем массивы

Alexander
05.09.2018
16:17:22

f4rt~
05.09.2018
16:17:38

Артур Евгеньевич
05.09.2018
16:18:29

Maksim
05.09.2018
16:18:45

Alexander
05.09.2018
16:19:53

Артур Евгеньевич
05.09.2018
16:19:57
ну если первые дают нам потенциальную возможность говнокодить, то вторые это уже гавнокод, котоыре дают нам потенциальную возможность написать код с ошибками

Maksim
05.09.2018
16:20:35
Если у тебя зависимости в конструктор не влезают, то это проблема разделения ответственности и сеттерами она не рншается. Вооьще никак

Alexander
05.09.2018
16:20:36

Артур Евгеньевич
05.09.2018
16:20:47
нет нельзя)
если ты создаешь лазейку для гавнокода, то кто нибудь обязательно ее использует
это тоже самое как принести топор в компанию алкашей

Alexander
05.09.2018
16:21:27
вот когда кто-то вызвал, то первым делом git blame, вторым — разогревание кочерги на плите с последующем погружением в анус того, что вызвал

Артур Евгеньевич
05.09.2018
16:21:33
а потом говорить, ну сам топор то зла не сделал, я его просто принёс и никого не убивал

Alexander
05.09.2018
16:21:51
это как "оружие убивает"

Артур Евгеньевич
05.09.2018
16:22:12
ок сойдемся на том что публик сервисы пишут дровосеки)