Найдено 83 результата
- 2017.12.27, 17:32
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Для определения, какому классу назначить обязанность по логину я бы воспользоваться шаблоном GRASP Information Expert. У кого больше всего данных для выполнения этой операции? У юзера - значит пусть будет User::login(). Несогласен, давайте разберем простейший логин, на вход поступает имя пользовате...
- 2017.12.27, 12:20
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
В Implementing domain-driven design можно найти примеры отправки email по доменному событию в application сервисе. Т.е. отправка email не безнес логика? Если доменный эксперт сказал - после n должно быть отправлено сообщение пользователю, то это разве не должно находить отражение в домене? Владелец...
- 2017.12.26, 23:58
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Ну тогда будет сервис с внутренним состоянием, вроде бы нормально.
PS пользуюсь синглтоном, так что не могу ответить.
PS пользуюсь синглтоном, так что не могу ответить.
- 2017.12.26, 13:14
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Ну так а в каком доменном объекте возникнет событие UserLogged ? По моему, это как раз тот случает когда бизнес логика не принадлежит какой либо конкретной сущности, и мы можем разместить ее в сервисе. Соответственно их должно быть минимальное количество. Лучше если их нет вообще. Вот тут не совсем ...
- 2017.12.26, 10:39
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
- 2017.12.26, 00:19
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Ну да, как описал authenticate принимает $authSession, согласен, но login то user'a принимает. Тут меня больше интересует то, что в app layer лежит интерфейс, а реализуется он в infrastructure, это правильный подход? В твоем примере помойму напутанно: 1) SessionAuthenticationService в примере по сут...
- 2017.12.25, 22:47
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Лучше юзера, тк login($user) логично и соответствует терминам предметной области. И должен ли агрегат юзера содержать в себе свои сессии? Или сессия должна содержать юзера? Я за 2й вариант, невижу причин юзеру знать о существование сессии (кстати нужно ли знать домену о существование сессии? видимо ...
- 2017.12.25, 20:45
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
В app service буду получать юзера каким то образом, например по токену (или этим должен заниматься инфраструктурный сервис?) и передавать его доменному сервису AuthenticationService. Можно заинжектить в app сервис репозитроий class LoginCommand { public function execute ($dto) { $member = $this->ge...
- 2017.12.25, 19:25
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
В теории да, ведь инфраструктура знает о домене, но передачи дто будет нарушить ubiquitous language в терминах которого спроектирован доменный сервис. Думаю так. В любом случае что мешает сохранить цепочку инфраструктура -> app сервис -> доменный сервис? App сервис у нас будет конкретный сценарий пр...
- 2017.12.25, 19:08
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Нет, это доменный сервис
- 2017.12.25, 18:54
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Не, что-то не складывается... Какое поведение у токена может быть? Да ни какого, это просто VO. Да никакого, а в чем не состыковка? Ну юзер тоже сам себя не залогинит в систему, помойму это система (в данном случае authentificator) должна принять решение залогинить юзера или отклонить. Вот чтобы не...
- 2017.12.25, 18:18
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Я бы еще вынес в доменный сервис архивацию/восстановление. У себя так и делал, но у меня сущность и сущность в архиве это 2 разные сущности (через sti) тк сущность в архиве меняет свое поведение и тоже участвует в бизнес логике. Тогда логика из сущности перекочует в сервис. Но она все равно будет ря...
- 2017.12.25, 18:00
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Нет, думаю пароль должен быть в юзере, но генерация пароля в доменном сервисе который будет реализовываться в инфраструктурном слое, скорее всего. Кстати по поводу bounded context, тема сложна, возможно frontend и admin можно рассматривать как 2 разных контекста, но тогда соответственно у нас будут ...
- 2017.12.25, 17:36
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Вот с контекстами я практически незнаком. Есть пример выделения контекстов с примерами организации этого всего в коде? примеры с bounded context есть в конце ddd in php, правда к вашему вопросу это не особо применимо, помойму. Я это к тому что домен не должен знать в админке ли его модель используе...
- 2017.12.25, 16:53
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
Ну так почему не перенести ответственность в другой класс? Как еще делать декомпозицию год объекта? Токенами должен обязательно юзер управлять?
И еще по сути вопроса, админка/фронтенд это ведь чисто инфраструктурные вещи, в домене у вас контекст в котором работает модель = bounded context.
И еще по сути вопроса, админка/фронтенд это ведь чисто инфраструктурные вещи, в домене у вас контекст в котором работает модель = bounded context.
- 2017.12.25, 16:34
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
login, logout изменяют внутреннее состояние пользователя?
- 2017.12.25, 11:16
- Форум: Архитектура, дизайн, ООП
- Тема: Разделение агрегата
- Ответы: 63
- Просмотры: 18133
Re: Разделение агрегата
login, logout, authenticate точно можно вынести в доменный сервис, Authentifier какой нибудь.
Так же archive/reinstate, если я правильно понял, тоже можно в доменный сервис. Ну и revokeAccess, хотя тут по разному можно.
Так же archive/reinstate, если я правильно понял, тоже можно в доменный сервис. Ну и revokeAccess, хотя тут по разному можно.
- 2017.12.23, 21:53
- Форум: Архитектура, дизайн, ООП
- Тема: Аггрегат и коллекция
- Ответы: 11
- Просмотры: 3933
Re: Аггрегат и коллекция
Хм, да, так и есть, спасибо большое что прояснили. Теоретически, в контесте разрабатываемого модуля, я думаю можно рассматривать и Y как агрегат, то есть множество Y находятся в одном контексте X. Тогда задаче по смене владельца будет решаться $y->changeOwner($newContext) и вся логика тогда уйдет в ...
- 2017.12.23, 20:59
- Форум: Архитектура, дизайн, ООП
- Тема: Аггрегат и коллекция
- Ответы: 11
- Просмотры: 3933
Re: Аггрегат и коллекция
Если я вас правильно понял то должен работать такой вот код : $y = $x1->ys->get(0); $x1->ys->remove(0); $x2->ys->add($y); $em->flush(); Но он не работает, выполняется как ожидаю только если добавить перед флашем $y->changeOwner($x); Настройки мапинга дефолтные из дока, за исключением того что orphan...
- 2017.12.23, 18:50
- Форум: Архитектура, дизайн, ООП
- Тема: Аггрегат и коллекция
- Ответы: 11
- Просмотры: 3933
Re: Аггрегат и коллекция
Таблица X, таблица Y с полем x_id для связи