
Sergey
07.12.2017
09:18:28
Да не про твиг.
а про что? зачем тебе доставать данные из сущности помимо UI?

Dinar
07.12.2017
09:18:41
Для логики.

Google

Sergey
07.12.2017
09:19:36
p.s. мы сейчас только про геттеры, это штуки которые имеют префикс get и являются отображением внутренней структуры класса. Есть еще query методы, которые обычно имеюот адекватное название и позволяют выполнить запрос. В некоторых ситуациях метод может просто поле вернуть, но клиентскому коду без разницы
Для логики.
почему эту логику нельзя поместить прямо в сущность? зачем данные доставать?

Dinar
07.12.2017
09:19:55
Могу доггер повесить на доступ к полю. Могу вообще все что захошь! :))

Sergey
07.12.2017
09:21:00
и через этот корень ты будешь просить что-то сделать
а еще - объекты значения, и понеслось

Dinar
07.12.2017
09:21:29

Sergey
07.12.2017
09:21:45
если они тебе не понятны - тогда вопрос снимается

Dinar
07.12.2017
09:22:37
Беру я сущность и сижу угадываю как разработчик назвал метод, который поле name меняет. :)
Понятно что я могу usages посмотреть.

Sergey
07.12.2017
09:23:06

Google

Dinar
07.12.2017
09:23:17
Но это займёт время примерно в n раз больше.

Sergey
07.12.2017
09:23:26
с геттерами и сеттерами теряется информация "зачем" - это важная информация

Dinar
07.12.2017
09:23:39

Sergey
07.12.2017
09:23:45
и сэкономит тебе пару минут на то что бы понять что делает код

Dinar
07.12.2017
09:23:46

Sergey
07.12.2017
09:24:04

Dinar
07.12.2017
09:24:06

Sergey
07.12.2017
09:24:59
я работал и с таким и с таким, и я умею быстро писать код с логикой в сущностях, дробить сущности. Да, это сложно. Особенно первое время и у тебя точно первое время будет проседание по производительности труда. Но потом - разницы никакой нет

Dinar
07.12.2017
09:25:05
Либо гуглить.

Sergey
07.12.2017
09:25:28

Dinar
07.12.2017
09:25:31
Либо просто в массив превращать.
Ну пример не лучший. Но чтобы идея была понятна.

Sergey
07.12.2017
09:25:55
или ты про "вот у меня есть сущность, хз зачем она мне, буду просто смотреть что она может, может чего пригодится"
обычно все же не так происходит

Dinar
07.12.2017
09:26:15
Ну либо например я юзаю стороннюю.

Sergey
07.12.2017
09:26:25
сущность?)
типа из /vendors?)

Dinar
07.12.2017
09:26:40
Да блин. Ну не понимай буквально меня.

Google

Sergey
07.12.2017
09:26:50
а как мне тебя понимать?

Dinar
07.12.2017
09:26:51
Это абстрактный пример просто чтобы идею понять.

Sergey
07.12.2017
09:26:59
но я не понимаю идею
так что давай конкретнее

Dinar
07.12.2017
09:27:05
Типа из vendors

Sergey
07.12.2017
09:27:14
у меня нет сущностей в vendors
а если и есть - я напрямую с ними не работаю

Dinar
07.12.2017
09:27:31
Ну не сущность.
Почему именно сущность?

Sergey
07.12.2017
09:27:43
окей, сервис. У тебя у сервиса геттеры и сеттеры есть?

Dinar
07.12.2017
09:27:52
Ты ж предлагаешь логику в сущности помещать.

Sergey
07.12.2017
09:27:57
да, именно так

Dinar
07.12.2017
09:28:20
Ну и соответственно тебе надо будет смотреть что сущность умеет.
На самом деле у меня палец устал печатать на телефоне. :₽

Sergey
07.12.2017
09:28:42
если мне эта сущнсть понадобилась - я уже знаю что она умеет или хотя бы предполагаю из названия и того что мне надо сделать.
иначе мне эта сущность не понадобилась бы

Dinar
07.12.2017
09:29:04
Ну вот пришёл ты на проект.
И тебе говорят надо поменять имя юзера.

Sergey
07.12.2017
09:29:48
cmd + o - User - ищу поле name - делаю find usage

Dinar
07.12.2017
09:29:59
Ты будешь искать rename, changeName или setName?

Google

Andrey
07.12.2017
09:30:01

Sergey
07.12.2017
09:30:12
это к слову хороший пример)
для бизнеса эти три поля - имя

Dinar
07.12.2017
09:30:38

Sergey
07.12.2017
09:30:41
а ты подумаешь только о first name
или забудешь учесть middle name какой
или забудешь еще чего

Andrey
07.12.2017
09:31:07

Dinar
07.12.2017
09:31:21
Не понимаю. Почему я забуду? А rename мне чем поможет?

Admin
ERROR: S client not available

Sergey
07.12.2017
09:31:24
и у тебя в итоге для того что бы поменять имя надо сделать 3 вызова методов. А еще веселее становится когда эти три вызова надо сделать в строгой последовательности
он будет явно говорить о том что "имя" это все вот это

Dmitriy
07.12.2017
09:31:59
а если ваще NameVO

Dinar
07.12.2017
09:32:02

Sergey
07.12.2017
09:32:09

Dinar
07.12.2017
09:32:22
Но
Хотя нет.

Dmitriy
07.12.2017
09:33:07
сущности в шаблонах это боль боль.. проходили через такое

Google

Dinar
07.12.2017
09:33:17
Не проходил. :)

Dmitriy
07.12.2017
09:33:18
прогеры потом говорят "проще переписать, чем переделать"
а потом переписывают также )

Dinar
07.12.2017
09:33:43
Сущности в API - боль. А в шаблонах - нет.
Все происходит в рамках одного реквеста на одном ПХП. В том же процессе.

Sergey
07.12.2017
09:35:14

Dinar
07.12.2017
09:35:25
Ну возможно. :)

Dmitriy
07.12.2017
09:35:26
Ну и если у тебя нормальная дтошка в твиге, то у тебя нет проблем с автокомплитом

Sergey
07.12.2017
09:35:26

Dinar
07.12.2017
09:35:31
Я все допускаю.
Ну у меня боли не было.
Как станет, я знаю как действовать.

Sergey
07.12.2017
09:36:06
Ну у меня боли не было.
давай по другому - юнит тесты пишешь? которые не на phpunit а настоящие изолированные тесты?)

Dmitriy
07.12.2017
09:36:19
когда у нас была эта боль мы ее тоже не признавали какое-то время )

Dinar
07.12.2017
09:36:19
Допускаю, что я просто не знаю, что можно круче. :)

Sergey
07.12.2017
09:36:21
отойдем немного от view

Dinar
07.12.2017
09:36:25
Подожди.

Sergey
07.12.2017
09:36:36
тестируешь геттеры/сеттеры?

Dinar
07.12.2017
09:36:54
Что ты имеешь ввиду изолированные а не PHPUnit?

Sergey
07.12.2017
09:36:58
как ты сервисы с логикой тестируешь в изоляции от сущностей и прочего?