Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class UserController {
- public function postCreate(UserCreatorService $userCreatorService, Request $request)
- {
- $creationNeeds = new CreationValueObject;
- $creationNeeds->username = $request->username;
- $creationNeeds->password = $request->password;
- $creationNeeds->email = $request->email;
- $creationNeeds->name = $request->name;
- $user = $userCreatorService->create($creationNeeds);
- return redirect()->back()->with('success_message', 'User successfully created');
- }
- }
- class ApiUserController {
- public function postCreate(UserCreatorService $userCreatorService, Request $request)
- {
- $creationNeeds = new CreationValueObject;
- $creationNeeds->username = $request->username;
- $creationNeeds->password = $request->password;
- $creationNeeds->email = $request->email;
- $creationNeeds->name = $request->name;
- $user = $userCreatorService->create($creationNeeds);
- return new JsonResponse(['user' => $user->toArray()]);
- }
- }
- class CreationValueObject {
- public $username;
- public $email;
- public $password;
- public $name;
- }
- class UserCreatorService {
- protected $userRepo;
- protected $notifRepo;
- public function __construct(UserRepostory $userRepo, NotificationRepository $notifRepo)
- {
- $this->userRepo = $userRepo;
- $this->notifRepo = $notifRepo;
- }
- public function createUser(CreationValueObject $createNeeds)
- {
- $user = $this->userRepo->create(get_object_vars($createNeeds));
- $this->notifRepo->creationNotifcation('Some somy data');
- event(new UserCreatedEvent($user));
- return $user;
- }
- }
- class UserRepository {
- public function create(array $data)
- {
- return User::create($data);
- }
- }
- class UserCreatedEvent {
- public $user;
- public function __construct(User $user)
- {
- $this->user = $user;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement