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

kolotek
2018.04.25, 19:42
Форум: REST API (Yii 2.x)
Тема: Сервисный слой в REST API
Ответы: 2
Просмотры: 1016

Re: Сервисный слой в REST API

Поэтому и разделяют на части по ответственностям. Чтобы принимала и валидировала модель ввода, юзкейсы реализоаали прикладные сераисы, заполнялась и сохранялась ActiveRecord, ресурсом выступали ресурсы-сериализаторы. А какие обязанности должны быть возложены на сервис? Получается, что в большинстве...
kolotek
2018.04.25, 18:56
Форум: REST API (Yii 2.x)
Тема: Сервисный слой в REST API
Ответы: 2
Просмотры: 1016

Сервисный слой в REST API

Подскажите, как вы организовываете сервисный слой в REST API?

Так как во главе REST API на Yii стоит ActiveRecord, котороя принимает данные, валидирует, сохраняет и выступает в роли ресурса, то что в этой ситуации должен делать сервис?
kolotek
2018.01.05, 10:58
Форум: Общие вопросы (Yii 2.x)
Тема: Mutex и Unique валидация
Ответы: 8
Просмотры: 1874

Re: Mutex и Unique валидация

Простите, возможно я чего-то не понимаю, но чем транзакция прозрачнее? При мютексе мы явно указываем имя блокировки, и, по моему мнению, всегда держим руку на пульсе. А при сериалайз транзакции БД сама блокирует строчки, которые были затронуты. И порой с вот такими дедлоками, как было у меня. Если я...
kolotek
2018.01.04, 13:51
Форум: Общие вопросы (Yii 2.x)
Тема: Mutex и Unique валидация
Ответы: 8
Просмотры: 1874

Re: Mutex и Unique валидация

По идее у меня только одна транзакция на запрос. А дедлок возникает из-за того, что при валидации система просматривает одни и те же rows несколько раз. Это необходимо для того, чтобы ограничить юзера в кол-во созданных записей и сгенерировать уникальный в пределах аккаунта числовой slug. Я предпола...
kolotek
2018.01.04, 11:29
Форум: Общие вопросы (Yii 2.x)
Тема: Mutex и Unique валидация
Ответы: 8
Просмотры: 1874

Re: Mutex и Unique валидация

Почему бы не обернуть всё в serializable-транзакцию, чтобы избавиться от фантомных чтений дублей? Возможно из-за какой-то особенности сохранения, но просто изменения уровня изоляции транзакции, вызывает deadlock - SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; ...
kolotek
2018.01.04, 01:09
Форум: Общие вопросы (Yii 2.x)
Тема: Mutex и Unique валидация
Ответы: 8
Просмотры: 1874

Mutex и Unique валидация

Здравствуйте. Столкнулся с подобной проблемой http://yiiframework.ru/forum/viewtopic.php?f=19&t=35001 , когда из-за конкуренции запросов, unique валидатор иногда пропускает дублирующее значение в базу. Понимаю, что для предотвращения подобного необходимо использовать mutex-ы. Но как их наиболее прав...
kolotek
2017.12.03, 23:05
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Re: Сервисы и объекты реквестов (модели), как быть?

Я вижу валидацию реквеста в Вашем посте, а я имел ввиду, что Вы все равно каждый параметр будете проверять на null в сервисе (чтоб он не перезаписывал нормальные данные). Или как-то по-другому? Ну собственно в этом и был мой вопрос - как поступить, чтобы постоянно не сравнивать значения с null. Нап...
kolotek
2017.12.01, 11:44
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Re: Сервисы и объекты реквестов (модели), как быть?

Например добавить в класс метод fillDefault($post), или передавать $post в конструктор UpdatePostRequest и затем заполнять поля модели. Но такое решение не очень нравится. Скажите, а там внутри будет как-то по-другому, нежели: if($request->getTitle()!==null){ $post->title=$request->getTitle(); } if...
kolotek
2017.12.01, 11:37
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Re: Сервисы и объекты реквестов (модели), как быть?

Но сами вверху написали 2 операции Ну по идее же операция одна - обновление поста. Это же не важно, сколько у меня action-ов. Я могу запускать этот сервис из 5 экшенов, из консоли, из админки, с разных версий API. По идее же это не имеет значения, откуда вызывается операция, главное - операция, а э...
kolotek
2017.12.01, 10:55
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Re: Сервисы и объекты реквестов (модели), как быть?

Например добавить в класс метод fillDefault($post), или передавать $post в конструктор UpdatePostRequest и затем заполнять поля модели. Но такое решение не очень нравится. Так и сделайте, как в примерах с формами в http://www.elisdn.ru/blog/111/yii2-composite-forms Спасибо. Наверное так и поступлю....
kolotek
2017.12.01, 09:59
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Re: Сервисы и объекты реквестов (модели), как быть?

Создайте 2 формы, у вас же по описанию их 2. 2 экшена = 2 юз-кейса = 2 сервиса = 2 формы (вернее 2 команды но у вас видимо команда = форма). Интерфейс для команды помойму явно излишество. ну не знаю, как мне кажется, тут операция одна, соответственно и сервис должен быть один. По идее мы же сохраня...
kolotek
2017.11.30, 23:07
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Re: Сервисы и объекты реквестов (модели), как быть?

Будет не совсем удобно, скорее всего. Это только в примере два поля. В реальном проекте может быть до 10 и больше. Начнется такое счастье... if($request->getTitle()!==null){ $post->title=$request->getTitle(); } if($request->getText()!==null){ $post->text=$request->getText(); } if($request->getCatego...
kolotek
2017.11.30, 21:33
Форум: Общие вопросы (Yii 2.x)
Тема: Сервисы и объекты реквестов (модели), как быть?
Ответы: 15
Просмотры: 2374

Сервисы и объекты реквестов (модели), как быть?

Здравствуйте. Недавно прочел статью ElisDN про композитные формы. И вдохновился на разделение AR модели и хранения данных от реквеста в ней. Но вот недавно начал применять, на практике нечто подобное, и, как всегда это бывает, начали появляться подводные камни. Например ситуация (выдуманная но хорош...