UserDTO.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\DTO;
  3. use App\Http\Requests\UserRequest;
  4. readonly class UserDTO
  5. {
  6. public function __construct(
  7. public string $name,
  8. public string $email,
  9. public ?string $password,
  10. public ?string $type,
  11. ) {
  12. }
  13. public static function fromRequest(UserRequest $request): self
  14. {
  15. return new self(
  16. name: $request->validated(key: 'name'),
  17. email: $request->validated(key: 'email'),
  18. password: $request->validated(key: 'password'),
  19. type: $request->validated(key: 'type'),
  20. );
  21. }
  22. public static function fromArray(array $data): self
  23. {
  24. return new self(
  25. name: $data['name'],
  26. email: $data['email'],
  27. password: $data['password'],
  28. type: $data['type'],
  29. );
  30. }
  31. public function toArray(): array
  32. {
  33. return [
  34. 'name' => $this->name,
  35. 'email' => $this->email,
  36. 'password' => $this->password,
  37. 'type' => $this->type,
  38. ];
  39. }
  40. }