
Альберт
17.03.2017
13:38:34
То есть в такой схеме сущность состоит из множетсва классов, сама струтура данных и её действия, в которых уже зашита логика. Это меня спасает от разбухания модели,

Aleh
17.03.2017
13:51:52

Альберт
17.03.2017
13:53:28
это зависит от самой сущности
Если есть такая необходимость, то могут быть сеттеры

Google

Aleh
17.03.2017
13:54:13
а что за необходимость?

Альберт
17.03.2017
13:54:41
) Если она позволяет изменять свое состояние из вне)

Aleh
17.03.2017
13:54:54
ну вот когда есть такая необходимость?

Альберт
17.03.2017
13:55:58
что бы установить какое то свойство модели)
Нужен конкретный пример?

Aleh
17.03.2017
13:56:09
ага

Anton
17.03.2017
13:56:12
вот сервисы аппликейшн левела мне на данный момент кажутся избыточными, в чем минус подхода вызывать в контроллере метод модели напрямую?

Aleh
17.03.2017
13:56:32

Anton
17.03.2017
13:58:58
ок, теперь ясно, но коллеги не поддержат в этом плане, они на меня взъелись, даже когда я предложил все, что зависит от реализации стораджа, вынести в репозитории из сервисов

Aleh
17.03.2017
14:01:54
ну отделять выбор типа от реализации типа хорошая практика
фабрики там)

Anton
17.03.2017
14:02:21
да им похер, они говорят, что многакласов!!!1111!!11

Aleh
17.03.2017
14:02:30
это хорошо

Google

Aleh
17.03.2017
14:02:35
у вас должно быть много маленьких классов

Anton
17.03.2017
14:03:13
меня не слушают) я пытался доказать, что сеттеры - это плохо, они меня троллить начали)
вариант с дабл диспатчем мне больше нравится, чем с ивентами - более явные зависимости

Альберт
17.03.2017
14:06:57
ага
Оккееей) Ну вот пример. Есть модель которая хранит в себе состояние изображения, в конструктор передаем имя исходной картинки. С помощью геттеров получаем свойства изображения (высота, ширина, цветовую схему итд), но изменять мы можем только масштаб картинки, поэтому будет только один сеттер setScale(), а высоту и ширину менять нельзя).

dypa
17.03.2017
14:07:09

Vadim
17.03.2017
14:07:59

Евгений
17.03.2017
14:09:09
Или сразу фб2 :)

Aleh
17.03.2017
14:09:34
но ее читать без понимания ООД вредно, я до сих пор ее плохо понимаю(
при этом с каждым годом становится понятнее и понятнее

Aleksandr
17.03.2017
14:17:47
Или сразу фб2 :)
техническую литературу читают в пдф - там же картинки, код, схемы. а в fb2 ее обычно и нет.

Rodion
17.03.2017
14:18:25
да не, там можно подцепить их
но эванса все равно нет в mobi/epub/fb2
есть DDD Quickly зато в этих форматах

Anton
17.03.2017
14:22:54

Aleh
17.03.2017
14:23:42
второй вопрос хорош, спроси зачем им сеттеры, почему поля не публичные?

Anton
17.03.2017
14:24:15
если при сеттинге какие-то дополнительные действия должны происходить

Aleh
17.03.2017
14:24:28
тогда это не сеттинг

Anton
17.03.2017
14:24:28
проверка баланса например

Google

Dmitriy
17.03.2017
14:24:29
в сеттере должен быть метод

Aleh
17.03.2017
14:24:30
очевидно же

Dmitriy
17.03.2017
14:24:35
например rename()

Rodion
17.03.2017
14:24:38
это уже логика

Dmitriy
17.03.2017
14:24:48
а не setName

Aleh
17.03.2017
14:24:55
да, типа того
семантика ваще разная)

Dmitriy
17.03.2017
14:25:41
setPassword() -> changePassword()
только тогда симфони формс у вас отвалятся :D

Rodion
17.03.2017
14:26:43
))

Rodion
17.03.2017
14:27:18
с сеттерами-геттерами))

Dmitriy
17.03.2017
14:27:26
ну да.. если ранее были сеттеры, то отвалятся формы )

Aleh
17.03.2017
14:27:40
если формы были в сущности, то вы уже все делали неправильно

Rodion
17.03.2017
14:28:12
бля...и правда...

Альберт
17.03.2017
14:28:25
А что симфони завставляет юзать одну модель для всего?) Ужс нах

Aleh
17.03.2017
14:28:46
не заставляет, но почему-то все пихают сущность в форму
что такое одна модель я не уловил, но наверное это один объект...

Google

Альберт
17.03.2017
14:28:59
А понял, фуух

Dmitriy
17.03.2017
14:29:00
из бест практикс потому что

Anton
17.03.2017
14:29:09
кек, у нас на фронте ангуляр, нас не колышат формы слава б-гу :D

Dmitriy
17.03.2017
14:29:30
админка?

Anton
17.03.2017
14:29:56
не, просто бэк работает как рест апи

Dmitriy
17.03.2017
14:29:58
админка тоже на ангуляре? )

Альберт
17.03.2017
14:29:58

Anton
17.03.2017
14:30:11
там твиг только для профайлера работает)

Sergey
17.03.2017
14:30:21
у всех реакты, ангуляры, вокруг одни SPA. а по факту куда не плюнь везде серверный рендеринг

Admin
ERROR: S client not available

Dmitriy
17.03.2017
14:30:36
хехе ага )

Boris
17.03.2017
14:30:58
всем привет, куда ни плюнь везде жквери по факту )
к вопросу о сеттерах в ентити, чем плох
public function setAccount( Account $account)
{
$this->account = $account;
}
я так и не понял
вешать на мапер аля энтити бизнес логику , имхо не совсем правильно

Dmitriy
17.03.2017
14:32:04
да ничем

Aleh
17.03.2017
14:32:25
это даже фича
)
есть те у кого "еще" серверный рендеринг, а есть те у кого "уже" серверный рендеринг ))

Google

Anton
17.03.2017
14:33:35

Альберт
17.03.2017
14:34:04

Aleh
17.03.2017
14:34:30
что это за операция такая?

Anton
17.03.2017
14:34:46
доктрине надо)

Aleh
17.03.2017
14:34:51
нет, лол

Boris
17.03.2017
14:34:55
присваиваешь конкретную энтити аккаунта на что-нить , аля пеймент
или меняешь
окей давай назовем updateAccount()
или changeAccount

Aleh
17.03.2017
14:35:24
так когда у тебя в приложении это происходит? Любой пользователь любому может сделать этот set?

Boris
17.03.2017
14:35:27
сути дела не изменит

Aleh
17.03.2017
14:35:37
семантика совсем разная ж)

Boris
17.03.2017
14:35:43
это я уже ограничу выше на уровне сервиса
суть в том, что идея Антона была делать метод update(array $data) и внутри уже педалить через $this->

Aleh
17.03.2017
14:36:12
ну грубо говоря, заче вам сеттер? Сделайте поле публичным

Boris
17.03.2017
14:36:15
чем он лучше чем отдельный сет на каждое поле ?
затем, чтобы провенить данные по типу на входе
как у паблик проперти проверить , что туда пихнули именно объект Account?

Aleh
17.03.2017
14:37:09
использовать Hack :C
но это все, что вам нужно проверять?

Boris
17.03.2017
14:37:27
не, тут вопрос в подходе