| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace App\DTO;
- use App\Http\Requests\UserLanguageRequest;
- use App\Enums\UserLanguageSource;
- readonly class UserLanguageDTO
- {
- public function __construct(
- public string $language,
- ) {
- }
- public static function fromRequest(UserLanguageRequest $request): self
- {
- return new self(
- language: $request->validated(key: 'language'),
- );
- }
- public static function fromString(string $language): self
- {
- if (!UserLanguageSource::isValid(value: $language)) {
- throw new \InvalidArgumentException(message: 'Invalid language');
- }
- return new self(
- language: $language,
- );
- }
- public static function fromArray(array $data): self
- {
- return new self(
- language: $data['language'],
- );
- }
- public function toArray(): array
- {
- return [
- 'language' => $this->language,
- ];
- }
- public function toString(): string
- {
- return $this->language;
- }
- }
|