
Valentin
20.04.2018
21:24:57

Sergey
20.04.2018
21:25:11

Вадим
20.04.2018
21:25:55

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-ой метод

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

Вадим
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

Konstantin
20.04.2018
21:30:03
верифи тут зачем вообще, он не сеттер
суть сеттера - поменять данные объекта
1-5 меняют, 6 нет

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

Sergey
20.04.2018
21:30:42

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

Sergey
20.04.2018
21:31:05

Вадим
20.04.2018
21:31:06

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

Вадим
20.04.2018
21:31:29

Sergey
20.04.2018
21:31:31

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

Google

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

Valentin
20.04.2018
21:33:20

Sergey
20.04.2018
21:33:37
но вспомним такую чудную функцию как array_pop и подумаем куда ее отнести

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

Sergey
20.04.2018
21:34:47

Valentin
20.04.2018
21:35:10

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

Alan
20.04.2018
21:37:39

Вадим
20.04.2018
21:37:56

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

Sergey
20.04.2018
21:38:10

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

Google

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

Sergey
20.04.2018
21:39:09

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

Sergey
20.04.2018
21:40:04

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

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

Pavel
20.04.2018
21:40:30

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

Вадим
20.04.2018
21:40:55

Admin
ERROR: S client not available

Sergey
20.04.2018
21:41:04

Pavel
20.04.2018
21:41:19

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

Вадим
20.04.2018
21:41:56

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

Pavel
20.04.2018
21:43:32

Google

Вадим
20.04.2018
21:44:09

Sergey
20.04.2018
21:44:24

Вадим
20.04.2018
21:44:27

Konstantin
20.04.2018
21:44:37

Sergey
20.04.2018
21:45:01

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

Pavel
20.04.2018
21:46:53

Konstantin
20.04.2018
21:47:01
сам же сказал пятый вариант сложный

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

Valentin
20.04.2018
21:50:22

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