Объекты данных Laravel 5 через жизненный цикл

Существующий поток управления, когда я регистрирую нового пользователя в моем приложении Laravel 5, обрабатывает жизненный цикл запроса:

  • RegisterRequest вызывает валидатор для прохождения после проверки>
  • (RegisterRequest obj) MyAuthController>
  • рассылки (пользовательский объект) RegisterUserCommand>
  • сопоставляет поля с объектом RegisterUserCommand >
  • вызывается обработчик в (RegisterUserCommand obj) RegisterUserCommandHandler >
  • создает нового пользователя, создавая пользовательский объект>
  • затем вызывая $user->save()
  • который сохраняет его в базу данных

Я делаю это правильно? Правильно ли передавать данные таким образом? Пользовательская модель вызывается и сопоставляется дважды, это хорошая практика?

Спецификация: Laravel Framework v5.0.28 с MySQL 5.6

2 ответа

Я не уверен, что вы имеете в виду, когда говорите

maps fields to RegisterUserCommand object >

Однако вот как примерно должен быть жизненный цикл

  1. Routes.php отправляет маршрут к UserController.php
  2. Метод postRegisterUser() вызывается
  3. Создан новый объект модели User
  4. Все свойства назначены атрибутам экземпляров новых объектов пользователя.
  5. Вызывается метод save() объекта пользовательской модели, и база данных обновляется.

Есть два способа сохранить или обработать любой запрос

  1. синхронный
  2. Асинхронный

Когда вы выполняете что-то синхронно, вы ждете, пока оно завершится, прежде чем переходить к другой задаче. Когда вы выполняете что-то асинхронно, вы можете перейти к другой задаче до ее завершения.

Я думаю, что из вашего примера вы пытаетесь сохранить данные в асинхронном режиме. Вы также можете использовать laravel Queue, чтобы сохранить пользователя в фоновом режиме. Это сэкономит время отклика.

Другие вопросы по тегам