@prophp7

Страница 291 из 1387
Альберт
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
вот сервисы аппликейшн левела мне на данный момент кажутся избыточными, в чем минус подхода вызывать в контроллере метод модели напрямую?

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(), а высоту и ширину менять нельзя).

Vadim
17.03.2017
14:07:59
кто то не читал первую главу эванса и сразу читал вторую
типа того, только я прочитал главы 3 и 1я уже почти полностью забылась :)

Евгений
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
с ивентами не было бы лишнего аргумента и было бы что-то типа $this->recordThat(ItemBought::forUserWithItem($user, $item));
скинул чувакам этот пример, начали спрашивать, что примерно должно происходить в "покупателе", и как без сеттеров менять приватные поля модели :D

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
setPassword() -> changePassword()
и инжектить в него объект Password

))

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
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
не, тут вопрос в подходе

Страница 291 из 1387