Объекты данных 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 >
Однако вот как примерно должен быть жизненный цикл
- Routes.php отправляет маршрут к UserController.php
- Метод postRegisterUser() вызывается
- Создан новый объект модели User
- Все свойства назначены атрибутам экземпляров новых объектов пользователя.
- Вызывается метод save() объекта пользовательской модели, и база данных обновляется.
Есть два способа сохранить или обработать любой запрос
- синхронный
- Асинхронный
Когда вы выполняете что-то синхронно, вы ждете, пока оно завершится, прежде чем переходить к другой задаче. Когда вы выполняете что-то асинхронно, вы можете перейти к другой задаче до ее завершения.
Я думаю, что из вашего примера вы пытаетесь сохранить данные в асинхронном режиме. Вы также можете использовать laravel Queue, чтобы сохранить пользователя в фоновом режиме. Это сэкономит время отклика.