Юра
Бедную логику не знают куда засунуть
Юра
Мне нравится команда что вся логика в одном месте и легко читается
Maxim Kainov
Maxim Kainov
То что ты называешь командой это по всей видимости интерактор или юзкейс
Maxim Kainov
Хотя, как угодно конечно можно назвать. А можно и никак не называть )
Юра
В моем понимании команда это что-то что меняет состояние системы, может быть сериализована, сохранена, может поддерживать откат
Юра
А и атомарна
Юра
Чтобы не вышло что мы создали файл но энтити нет к примеру
Юра
Её можно к примеру кинуть в ребит на исполнение
Юра
Или просто в пхп вызвать
Юра
Если прикрутить логику зависимостей, то одна команда может ждать пока другие не выполнятся
Maxim Kainov
Юра
Самый просто пример командыоо команда DeletrUser которая в методе do выставляет флаг isDeleted а в undo возвращает обратно
Maxim Kainov
Сериализация, откат
Юра
Да для простых задач это оверхед
Юра
Часто в црм такой паттерн заходит, когда надо видеть историю изменений кто что делал
Maxim Kainov
Ну хз, команда это просто, сигнал - реакция
Юра
Есть команда, видно когда создана, кем, статус, ошибки
Maxim Kainov
Это уже у тебя транзакционная команда какая то получается )
Maxim Kainov
С поддержкой сериализации )
Вадим
Какая может быть сериализация у команды, если у нее нет стейта, на то она и команда? )
Юра
Команда без стейта это не команда
Юра
Это хз шо ивент какой-то
Юра
Звпустил и забыл
Юра
Все что ей надо знать чтобы выполнить ее
Юра
Юзер айди который удалить или имейл на который письмо отправить
Юра
Это похоже на flux
Юра
На фронте
Вадим
Юра
Параметры но команда может быть вызвана позже
Юра
Если она ачинхронная к примеру
Юра
Она ж должна стейт сохранить
Вадим
Эм, это уже не команда ;) А таск/ивент. Походу у нас разные терминологии
Юра
Да походу
Юра
Ну и undo она без стейта не сделает
Юра
Ей надо знать что она делала
Вадим
$cmd = new BanCommand($userRespository);
$cmd->blockUser($userId);
$cmd->unblockUser($userId);
Вадим
Можно разделить на 2 команды, но для удобства можно и в одной
Юра
Да суть такая
Юра
Все верно
Юра
Обычно правда там один интерфейс для выполнения
Юра
Do undo
Вадим
Стейт оправдывается если использовать CommandBus ... но там команда, это по сути своей ивент
Maxim Kainov
Maxim Kainov
Почему не бы не сделать просто UserService или UserBanService
Юра
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
Maxim Kainov
Юра
Нету смысла
Maksym
Народ, всем привет.
Не подскажете, какой метод нужно добавить к своему типу данных для Doctrine что бы при генерации миграций не дублировались уже выполненные sql команды?
Dmitriy
Maksym
Alexander
Приветы. Парни, подскажи русский смс сервис, а то smsc.ru гнустный опыт дал. Сорри что оффтоплю(
Anonymous
Anonymous
Вроде нормный.
Alexander
Спасибо, посмотрю
Константин
Всем привет. Хэлпаните, плиз. Делаю валидацию и вывожу месседж Object(App\\Entity\\User).login:\n Не корректный логин (code de1e3db3-5ed4-4941-aae4-59f3667cc3a3)
Можно ли как то избавиться от служебной информации?
Константин
Есть кто живой то?
Aleksandr
нет
Anonymous
я дед инсайд
artem
А месседж свой прописать с value и property
Константин
Egor
Alexander
Видел, спасибо
Maxim Kainov
Aleksandr
п
Гречушников
ребят. подскажите как составить запрос в доктрине.
есть категории. есть продукты. многие ко многим.
надо вывести список категорий и сделать подсчет продуктов в каждой категории
Гречушников
хотя бы алгоритм для начала.
sql запрос составить нет проблемы. интересно как это доктриной сделать. пока не смог разобраться.
Egor
SELECT category, count(category.products) FROM App\Entity\Category category GROUP BY category не работает?
Aleksandr
$yourCount = $qb->select('a.category, count(a.category)
->from('App\Entity\Category', 'a')
->groupBy('a.category')
->getQuery()
->getResult();
Гречушников
$result = $this->createQueryBuilder('c')
->select('c.id, count(c.products)')
->groupBy('c.id')
->getQuery()
->getResult();
попробовал вот так
Egor
$this->createQueryBuilder('category')
->select('category', 'COUNT(product)')
->join('category.products', 'product')
->groupBy('category')
;
Гречушников
Category Entity: https://paste.laravel.io/5d6df55f-6b5d-4f9a-835f-3250ef24e4c2
#message: "[Semantical Error] line 0, col 21 near 'products) FROM': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected."
-previous: Doctrine\ORM\Query\QueryException {#843
#message: "SELECT c.id, count(c.products) FROM Framework\Src\Common\Models\Backend\Entity\Ecommerce\Category c GROUP BY c.id"
Egor
Гречушников
угу, вижу. спасибо/
Kirill
боян
artem
А у кого-то есть рабочий докер образ под симфу стек: php7.4 apache mysql. Стек не очень комфортный, это для студентов чтобы не объяснять лишнего
artem
Ну и симфа 4.4 в стеке, уже не помню какие требования по экстеншн для сайт скелета