Найдено 87 результатов

Melodic
2016.05.17, 16:19
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Ещё по CommandBus вопрос.
CommandBus после выполнения команды не должна же ничего возвращать? Как тогда узнать об успешном выполнении? К примеру о успешном выполнении входа? С помощью событий?
Melodic
2016.05.17, 15:05
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

http://yiiframework.ru/forum/viewtopic.php?f=19&t=36725&e=1&view=unread#p188512 по п.3: реализация базовая - нужно учесть, что есть ситуации, когда необходимо ресолвить и зависимости зависимостей. Можно же просто ProxyManager подключить (вы ссылку давали на github), там вроде ничего сло...
Melodic
2016.05.17, 15:03
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Если UserServiceInterface относится к Application, то что тогда может являться доменным сервисом на примере пользователя? сервис, имеющий значение для домена - генератор id, хэшер паролей, расчет комиссии - то, о чем знает домен, и что является непосредственной частью домена. UserServiceInterface -...
Melodic
2016.05.17, 14:09
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

DTO к какому слою относится? Domain,App,Infrastructure? - domain - сущности, доменные сервисы, репозитории - infrastructure - реализации репозиториев - application - сервисы приложений, клей между presentation и domain. От presentation получаем dto, в domain передаем entity. dto относится к app. Т....
Melodic
2016.05.17, 13:49
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

DTO к какому слою относится? Domain,App,Infrastructure? Т.к. UserServiceInterface относится к Domain, то и DTO относится к Domain (т.к. метод UserServiceInterface::registration($dto) - зависит от DTO UserRegistrationDto)? Или всё же в сервисах не использовать DTO(использовать обычные параметры UserS...
Melodic
2016.05.17, 13:06
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

А что делать при такой слоёной архитектуре со входом, т.е. с Yii::$app->user->login()? На какой класс вешать IdentityInterface? Создать отдельный сервис UserAuthService? навскидку проблема не понятна, но вы всегда можете сделать адаптер, реализующий IdentityInterface, заполняющийся необходимыми дан...
Melodic
2016.05.16, 15:21
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Сделать класс который будет отвечать за хранение связанной модели. Т.е. class Value{ private $value; public function getValue(){ if($this->value===null){ //здесь бросаейэм евент и загружаем value } return $this->value; } public function User::getCity(){ return $this->city->getValue(); } Тему надо б...
Melodic
2016.05.16, 11:20
Форум: Общие вопросы (Yii 2.x)
Тема: Проблема с префиксом таблиц
Ответы: 10
Просмотры: 4081

Re: Проблема с префиксом таблиц

public static function tableName()
{
return '{{%user}}';
}
так должно быть
Melodic
2016.05.14, 16:52
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Сделать класс который будет отвечать за хранение связанной модели. Т.е. class Value{ private $value; public function getValue(){ if($this->value===null){ //здесь бросаейэм евент и загружаем value } return $this->value; } public function User::getCity(){ return $this->city->getValue(); } Тему надо бы...
Melodic
2016.05.14, 15:54
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Если модели пользователь будет много связанных моделей, у которых в свою очередь тоже будут какие то связи, правильным ли будет грузить из БД сразу всё? Или в Condition добавить параметр With, аналог ActiveQuery::with() ? вопрос неоднозначный. Советовать что-то не буду - пробуйте сами. Надо как-то ...
Melodic
2016.05.14, 12:03
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

ElisDN,zelenin вы встречали на github'e yii проекты со слоёной архитектурой, что бы можно было посмотреть и быстрее понять?
Melodic
2016.05.13, 11:22
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

ElisDN, у вас в коде UserService есть код   $user = User::requestSignup(             $username,             $email,             $password,             $this->passwordHasher,             $this->authTokenizer,         );    Нельзя код этого метода было вынести в сам UserService::registrationRequest()?...
Melodic
2016.05.13, 11:14
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Насчёт Condition для репозитория. Как правильно будет сделать если нужно будет найти пользователей по определённому городу? В Where передавать саму модель City или передавать её id? Если модели пользователь будет много связанных моделей, у которых в свою очередь тоже будут какие то связи, правильным...
Melodic
2016.05.12, 20:32
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

А что делать при такой слоёной архитектуре со входом, т.е. с Yii::$app->user->login()? На какой класс вешать IdentityInterface?
Создать отдельный сервис UserAuthService?
Melodic
2016.05.12, 15:54
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

в репозитории может быть много методов, но пусть они все работают через один главный findByCondition, который на вход получает объект Condition (limit, orderBy, where итд). можно сделать что-то типа $conditionBuilder (как queryBuilder в yii). Этот объект обрабатывайте в этом методе и формируйте ваш...
Melodic
2016.05.12, 14:19
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

В репозитории UserRepository есть метод findAll(), который возвращает всех пользователей. Как правильно будет сделать, если нам нужно определённое кол-во записей? Создать метод findAllLimit($start,$end)? А если ещё кроме этого нужно будет искать по E-mail'y? Создать метод findByEmaillLimit($start,$e...
Melodic
2016.05.12, 13:59
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

С репозиториями не много не понятно. По вашему совету, все методы для сохранения\добавления\обновления БД я вынес в репозиторий UserRepository. У модели User есть поле $city, которое содержит модель City. В репозитории UserRepository есть метод findById($id), который ищет пользователя по Id и заполн...
Melodic
2016.05.12, 13:01
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

предлагаю так: public function actionTest() { $dto = UserRegistrationDto::createFromRequest(Yii::$app->request); if($this->userRegistrationValidator->validate($dto)) {     $errors = new ValidationErrors();     $this->userRegistrationService->registrate($dto); } else {     $errors = $this->userRegis...
Melodic
2016.05.12, 12:20
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

zelenin писал(а):во вьюшку спускать UserRegistrationResponse с dto и errors
UserRegistrationResponse это DTO и его будет возвращать UserService::registrate(), верно?

Код: Выделить всё

<?php
class UserRegistrationResponse{
    public $success;
    public $errors;
}
 
Melodic
2016.05.12, 12:01
Форум: Архитектура, дизайн, ООП
Тема: Сервисный слой, как правильно?
Ответы: 208
Просмотры: 90347

Re: Сервисный слой, как правильно?

Не избыточным будет интерфейс для валидатора? ну если подумать, что можно будет написать расширенный валидатор и переопределить его, то интерфейс имеет смысл. Как мне в таком случае получить ошибки валидации что бы отобразить где то? if($this->userRegistrationValidator->validate($dto)){            ...