Advertisement
Guest User

Untitled

a guest
Apr 24th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. <?php
  2.  
  3. class UserController {
  4. public function postCreate(UserCreatorService $userCreatorService, Request $request)
  5. {
  6. $creationNeeds = new CreationValueObject;
  7.  
  8. $creationNeeds->username = $request->username;
  9. $creationNeeds->password = $request->password;
  10. $creationNeeds->email = $request->email;
  11. $creationNeeds->name = $request->name;
  12.  
  13. $user = $userCreatorService->create($creationNeeds);
  14.  
  15. return redirect()->back()->with('success_message', 'User successfully created');
  16. }
  17. }
  18.  
  19. class ApiUserController {
  20. public function postCreate(UserCreatorService $userCreatorService, Request $request)
  21. {
  22. $creationNeeds = new CreationValueObject;
  23.  
  24. $creationNeeds->username = $request->username;
  25. $creationNeeds->password = $request->password;
  26. $creationNeeds->email = $request->email;
  27. $creationNeeds->name = $request->name;
  28.  
  29. $user = $userCreatorService->create($creationNeeds);
  30.  
  31. return new JsonResponse(['user' => $user->toArray()]);
  32. }
  33. }
  34.  
  35.  
  36. class CreationValueObject {
  37. public $username;
  38. public $email;
  39. public $password;
  40. public $name;
  41. }
  42.  
  43. class UserCreatorService {
  44.  
  45. protected $userRepo;
  46. protected $notifRepo;
  47.  
  48. public function __construct(UserRepostory $userRepo, NotificationRepository $notifRepo)
  49. {
  50. $this->userRepo = $userRepo;
  51. $this->notifRepo = $notifRepo;
  52. }
  53.  
  54. public function createUser(CreationValueObject $createNeeds)
  55. {
  56. $user = $this->userRepo->create(get_object_vars($createNeeds));
  57.  
  58. $this->notifRepo->creationNotifcation('Some somy data');
  59.  
  60. event(new UserCreatedEvent($user));
  61.  
  62. return $user;
  63. }
  64. }
  65.  
  66. class UserRepository {
  67. public function create(array $data)
  68. {
  69. return User::create($data);
  70. }
  71. }
  72.  
  73. class UserCreatedEvent {
  74. public $user;
  75. public function __construct(User $user)
  76. {
  77. $this->user = $user;
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement