• Создание связных записей Laravel Eloquent?

    @Holmess88
    Нет правильного ответа, есть наилучшее подобранное решение к каждому индивидуальному кейсу)

    С точки зрения разделения сервисов по обязанностям правильнее было бы делать на каждый экшен свой сервис.
    Допустим у нас есть инфраструктурный класс-контроллер(не обязательно контроллер в нашем понимании), который всё что делает это поручает работу другим классам и не содержит бизнес-логики.

    Я бы в таком классе-контроллере поручил сервису пользователей создать пользователя.
    Сервису ролей передать созданного пользователя и от него сделать $user->create(attributes) Только заранее дайте им fillable поля в модели, иначе атрибуты сами не заполнят модель.
    По той же схеме создаем профиль.

    Таким образом инфраструктурный класс не взял на себя никакой логики и все сервисы остались чистыми по входящим зависимостям. Валидируем в форм реквесте лары.

    Таскать по сервисам модели не обязательно, можно сделать CreateUserDto. Но тогда из лары мы начинаем делать симфони.
    Ответ написан
    Комментировать
  • Почему expectsNotification или аналогичные инструменты не отлавливают уведомления в тестах?

    @Holmess88 Автор вопроса
    Я просмотрел логи, может быть проблема в том, что у меня фактически уведомление уходит в статус проваленное?

    То есть, так как у меня нет локально настроенного smtp, мне некому отправлять сообщения.
    Лог примерно такой: Processing x3 -> Failed. Очередь три раза пытается обработать, потом снимает с обработки.

    Process could not be started /usr/sbin/sendmail

    Что не совсем логично, потому что уведомление было зафейкано. И я тогда не понимаю смысл фейкать, если мне не важно что сообщение было отправлено, мне важно что оно намеревалось быть отправленным.

    Я переписал под assertSentTo() и это утверждение тоже не проходит потому что уведомление лежит в проваленных.
    Ответ написан
    Комментировать