@symfony_php

Страница 894 из 1418
Valentin
20.04.2018
21:24:57
какой из них сеттер а какой "не очень"
Ну так там все методы сеттеры

Sergey
20.04.2018
21:25:11
Ну так там все методы сеттеры
ммм.... сча еще один добавлю но он будет отличаться

Вадим
20.04.2018
21:25:55
какой из них сеттер а какой "не очень"
Как по мне, то 1 и 2 такое себе )

Pavel
20.04.2018
21:26:46
1 и 4

Google
Sergey
20.04.2018
21:27:06
https://gist.github.com/fesor/c02162883181276e3f7eda8c657d352f

Вадим
20.04.2018
21:27:06
А остальный 3-5 норм

Sergey
20.04.2018
21:27:10
добавил 6-ой метод

Ну так там все методы сеттеры
6-ой метод куда отнесешь?

Arky
20.04.2018
21:27:37
4,5,6 не сеттеры)0

Sergey
20.04.2018
21:27:45
Konstantin
20.04.2018
21:27:47
Valentin
20.04.2018
21:28:22
6-ой метод куда отнесешь?
Сложно) наверное к геттеру, вообще надо подумать

Вадим
20.04.2018
21:28:29
3,4,5 норм сеттеры, 6 просто метод, т.к. он не меняет состояние

Pavel
20.04.2018
21:28:45
4ый как завещал делать yegor256

Valentin
20.04.2018
21:29:06
Да, 6й просто метод

Sergey
20.04.2018
21:29:09
итого имеем.... - нет единого мнения относительно того что такое геттер и сеттер - судя по сомнениям куда относить 6-ой метод нет четкого понимания что такое сайд эффекты

Konstantin
20.04.2018
21:29:19
все первых 5 это сеттеры

Google
Konstantin
20.04.2018
21:29:26
последний это просто часть процесса

Sergey
20.04.2018
21:29:27
последний это просто часть процесса
а первые 5 не часть процесса?

Konstantin
20.04.2018
21:30:03
верифи тут зачем вообще, он не сеттер

суть сеттера - поменять данные объекта

1-5 меняют, 6 нет

Вадим
20.04.2018
21:30:33
Но по сути 6-й можно к гетеру отнести

Sergey
20.04.2018
21:30:42
1-5 меняют, 6 нет
все 6 порождают сайд эффекты

Pavel
20.04.2018
21:30:48
бля пятый сложно пиздец

Sergey
20.04.2018
21:31:05
Но по сути 6-й можно к гетеру отнести
нельзя, он ничего не возвращает и он кидает исключения (сайд эффекты)

Вадим
20.04.2018
21:31:06
Konstantin
20.04.2018
21:31:16
ты еще один варик не засунул туда

Вадим
20.04.2018
21:31:29
нельзя, он ничего не возвращает и он кидает исключения (сайд эффекты)
Почему не возвращает, какраз возвращает но в виде исключения.

Konstantin
20.04.2018
21:32:04
public function setEmail($email){ $result = clone this; $result->email = $email; return $result; }

Pavel
20.04.2018
21:32:12
Domain Event )
по сути $this->rememberThat(EmailChangedEvent::occurred($this->id, $email)); надо бы вынести в листнер какойто

Konstantin
20.04.2018
21:32:15
это сеттер? )

Sergey
20.04.2018
21:32:27
по сути $this->rememberThat(EmailChangedEvent::occurred($this->id, $email)); надо бы вынести в листнер какойто
ммм.... зачем? что бы выстрелить потом себе в ногу из базуки?

Google
Вадим
20.04.2018
21:33:05
это сайд эффект.
Как мо мне, гетер возвращает информацию, а сетер изменяет. В 6 варианте, это получение информации о валидности токена.

Valentin
20.04.2018
21:33:20
public function setEmail($email){ $result = clone this; $result->email = $email; return $result; }
Это не сеттер думаю, не меняет же состояние

Sergey
20.04.2018
21:33:37
Это не сеттер думаю, не меняет же состояние
по факту - да, это геттер так как сайд эффектов нет)

но вспомним такую чудную функцию как array_pop и подумаем куда ее отнести

Alan
20.04.2018
21:34:32
а если штука меняет состояние ее надо именовать с set ?))

Sergey
20.04.2018
21:34:47
а если штука меняет состояние ее надо именовать с set ?))
вопрос нэйминга пока оставим в стороне

Valentin
20.04.2018
21:35:10
а если штука меняет состояние ее надо именовать с set ?))
Естественно, иначе пых не скомпилируется

Pavel
20.04.2018
21:35:16
В итоге сеттре - то то что меняет состояние?

Sergey
20.04.2018
21:35:31
В итоге сеттре - то то что меняет состояние?
в итоге термины геттер и сеттер можно просто перестать использовать)

и пора дописывать статью про то "что такое сайд эффекты"

Konstantin
20.04.2018
21:35:55
да, предлагаю переименовать геттер в "получатор" а сеттер в "записатор"

Sergey
20.04.2018
21:36:04
https://habrastorage.org/getpro/habr/post_images/197/881/52c/19788152ce3e82130a114639483dd2d3.png

Sergey
20.04.2018
21:36:29
да, предлагаю переименовать геттер в "получатор" а сеттер в "записатор"
уже есть четко определенные термины - команды и запросы)

Вадим
20.04.2018
21:36:31
нельзя, он ничего не возвращает и он кидает исключения (сайд эффекты)
А я еще встречал такое обозначение как isser ) Так вот 6-е это оно )

Alan
20.04.2018
21:37:39
да, предлагаю переименовать геттер в "получатор" а сеттер в "записатор"
еще принтор и отправлятор для полноты диалекта

Вадим
20.04.2018
21:37:56
Alan
20.04.2018
21:38:08
и моделировать исходя из доступных терминов))

Konstantin
20.04.2018
21:38:45
бля я б не стал писать как номер 6

Google
Вадим
20.04.2018
21:38:55
команда)
Тоесть если я верну bool это будет запрос, а когда исключение команда ? )

Konstantin
20.04.2018
21:39:34
мне ближе что то вроде if ($user->setEmail($email)){ $eventDispatcher->dispatch(new UserEmailChangedEvent($user)); }

Вадим
20.04.2018
21:40:13
да, вполне себе логично)
Не логично ) По скольку код делает одно и тоже ... возвращает валидность токена. И каким образом возвращается результат помоему нет никакой разницы.

Alan
20.04.2018
21:40:28
а что делает rememberMeThat?

Konstantin
20.04.2018
21:40:51
затем что setEmail не кидает исключение а ласково говорит return false

Вадим
20.04.2018
21:40:55
мне ближе что то вроде if ($user->setEmail($email)){ $eventDispatcher->dispatch(new UserEmailChangedEvent($user)); }
Фиогово, покскольку у тебя тупая зависимость от eventDispatcher ... а этого в Entity быть не может

Admin
ERROR: S client not available

Sergey
20.04.2018
21:41:04
а что делает rememberMeThat?
у сущности есть просто массив того что с ней происходило. Оно просто добавляет ивент в массивчик

Konstantin
20.04.2018
21:41:50
если убрать if придется делать try catch

Вадим
20.04.2018
21:41:56
а у него это и не в энтити)
Да, проебал, сонный ) Тогда толку от той энтити )

Sergey
20.04.2018
21:42:19
Не логично ) По скольку код делает одно и тоже ... возвращает валидность токена. И каким образом возвращается результат помоему нет никакой разницы.
ну пример искусственный) мне просто было лень думать, в реальности я такое делаю когда там чето посложнее

Да, проебал, сонный ) Тогда толку от той энтити )
именно об этом пишет Мартин Фаулер - что раз уж начал обмазываться энтитями - то тогда они не должны быть анемичными ибо анемичные доменные модели это пустая трата времени. И да, есть проекты где в целом не нужен паттерн доменной модели

если убрать if придется делать try catch
зачем? что бы поиграть в go?

Pavel
20.04.2018
21:43:32
если убрать if придется делать try catch
А, понел. А может название поменять на change

Google
Вадим
20.04.2018
21:44:09
ну пример искусственный) мне просто было лень думать, в реальности я такое делаю когда там чето посложнее
Ну я выходил конкретно из этого примера. Просто если состояние не меняется, то по сути это запрос.

Sergey
20.04.2018
21:44:24
А, понел. А может название поменять на change
меня больше смущает что у него диспатч сразу отдает событие на выполнение а мне надо убедиться что данные сохранены в базу (транзакция успешно закоммичена)

Sergey
20.04.2018
21:45:01
не понял тут )
вот и я не понял зачем делать try/catch

Konstantin
20.04.2018
21:45:20
затем что option 3

Pavel
20.04.2018
21:45:31


Konstantin
20.04.2018
21:45:50
тут есть такой момент

правило большого пальца для исключений - исключительная ситуация не является ожидаемой

кривой емайл от криворукого юзера - ожидаемо

Sergey
20.04.2018
21:46:23
затем что option 3
окей, а что если все хорошо, исключения небыло но при сохранении в базу что-то не так пошло? а ты уже ивент кинул на обработку и уже email послать успел

Konstantin
20.04.2018
21:46:24
поэтому тут можно и нужно обходиться без исключений

Sergey
20.04.2018
21:46:46
кривой емайл от криворукого юзера - ожидаемо
когда кривой email прошел валидацию в форме и пришел в доменный слой - это уже исключительная ситуация

Pavel
20.04.2018
21:46:53
неплохое замечание
тоесть setEmail у тебя просто метод сущности?

Konstantin
20.04.2018
21:47:01
тоесть setEmail у тебя просто метод сущности?
а надо чтобы он ракеты к марсу запускал? )

сам же сказал пятый вариант сложный

Pavel
20.04.2018
21:49:58
а надо чтобы он ракеты к марсу запускал? )
ну раз ты возлагаешь на него обязанность сообщать изменился ли $email, то да. Едь если ты не смог установить значение, то нужно исключение, которое говорит из-за чего не смог

Valentin
20.04.2018
21:50:22
https://gist.github.com/fesor/c02162883181276e3f7eda8c657d352f
А есть пример как оно внутри выглядит? EmailChangedEvent::occurred($this->id, $email)

Konstantin
20.04.2018
21:53:00
типа $user->setAggressiveMode(true)

))))))))))))

Страница 894 из 1418