Skip to content

Commit 46ba4bb

Browse files
committed
Moving array attributes to types folder
1 parent 53e6717 commit 46ba4bb

15 files changed

+54
-64
lines changed

docs/SupportedTypes.md

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,7 @@ Array of scalar type
145145
To declare an array of scalar type, you can use the `ArrayOfScalarType` attribute:
146146

147147
```php
148-
use Nuxtifyts\PhpDto\Data
149-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfScalarTypes;
150-
use Nuxtifyts\PhpDto\Enums\Property\Type;
148+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfScalarTypes;use Nuxtifyts\PhpDto\Data;use Nuxtifyts\PhpDto\Enums\Property\Type;
151149

152150
final readonly class Person extends Data
153151
{
@@ -216,8 +214,7 @@ Array of backed enums
216214
Using `ArrayOfBackedEnum` attribute, you can declare an array of `BackedEnum` type:
217215

218216
```php
219-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfBackedEnums;
220-
use Nuxtifyts\PhpDto\Data;
217+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfBackedEnums;use Nuxtifyts\PhpDto\Data;
221218

222219
final readonly class User extends Data
223220
{
@@ -238,8 +235,7 @@ Array of DateTime
238235
To declare an array of `DateTime` type, you can use the `ArrayOfDateTimes` attribute:
239236

240237
```php
241-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfDateTimes;
242-
use DateTimeImmutable;
238+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfDateTimes;
243239

244240
final readonly class User extends Data
245241
{
@@ -260,8 +256,7 @@ Array of Data
260256
To declare an array of `Data` type, you can use the `ArrayOfData` attribute:
261257

262258
```php
263-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
264-
use Nuxtifyts\PhpDto\Data;
259+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;use Nuxtifyts\PhpDto\Data;
265260

266261
final readonly class UserGroup extends Data
267262
{
@@ -277,9 +272,9 @@ final readonly class UserGroup extends Data
277272
```
278273

279274
It is possible to use multiple types of data objects in the array:
275+
280276
```php
281-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
282-
use Nuxtifyts\PhpDto\Data;
277+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;use Nuxtifyts\PhpDto\Data;
283278

284279
final readonly class UserGroup extends Data
285280
{
@@ -318,8 +313,7 @@ Array keys
318313
Array keys are kept where hydrating the data object, or when serializing:
319314

320315
```php
321-
use Nuxtifyts\PhpDto\Data;
322-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
316+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;use Nuxtifyts\PhpDto\Data;
323317

324318
final readonly class UserGroup extends Data
325319
{
@@ -404,10 +398,7 @@ final readonly class Person extends Data
404398
The exact same rules apply for array as well:
405399

406400
```php
407-
use Nuxtifyts\PhpDto\Data;
408-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfScalarTypes;
409-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
410-
use Nuxtifyts\PhpDto\Enums\Property\Type;
401+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfScalarTypes;use Nuxtifyts\PhpDto\Data;use Nuxtifyts\PhpDto\Enums\Property\Type;
411402

412403
final readonly class UserGroup extends Data
413404
{

src/Attributes/PropertyAttributes/ArrayOfBackedEnums.php renamed to src/Attributes/PropertyAttributes/Types/ArrayOfBackedEnums.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes;
3+
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types;
44

55
use Attribute;
66
use BackedEnum;
@@ -10,13 +10,13 @@
1010
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)]
1111
class ArrayOfBackedEnums
1212
{
13-
/** @var array<string, ReflectionEnum<BackedEnum>> */
13+
/** @var ReflectionEnum */
1414
private static array $_enumReflections = [];
1515

1616
/** @var list<class-string<BackedEnum>> $enums */
1717
private(set) public array $enums;
1818

19-
/** @var array<string, ReflectionEnum<BackedEnum>> */
19+
/** @var ReflectionEnum */
2020
private(set) public array $resolvedBackedEnumReflections = [];
2121

2222
/**

src/Attributes/PropertyAttributes/ArrayOfData.php renamed to src/Attributes/PropertyAttributes/Types/ArrayOfData.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
<?php
22

3-
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes;
3+
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types;
44

55
use Attribute;
6-
use ReflectionClass;
7-
use Nuxtifyts\PhpDto\Data;
8-
use InvalidArgumentException;
96
use Exception;
7+
use InvalidArgumentException;
108
use Nuxtifyts\PhpDto\Contracts\BaseData as BaseDataContract;
9+
use Nuxtifyts\PhpDto\Data;
10+
use ReflectionClass;
1111

1212
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)]
1313
class ArrayOfData
1414
{
15-
/** @var array<string, ReflectionClass<Data>> */
15+
/** @var ReflectionClass */
1616
private static array $_dataReflections = [];
1717

1818
/** @var list<class-string<Data>> */
1919
private(set) public array $dataClasses;
2020

21-
/** @var array<string, ReflectionClass<Data>> */
21+
/** @var ReflectionClass */
2222
private(set) public array $resolvedDataReflections = [];
2323

2424
/**

src/Attributes/PropertyAttributes/ArrayOfDateTimes.php renamed to src/Attributes/PropertyAttributes/Types/ArrayOfDateTimes.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
<?php
22

3-
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes;
3+
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types;
44

55
use Attribute;
66
use DateTime;
77
use DateTimeImmutable;
8-
use ReflectionClass;
9-
use InvalidArgumentException;
108
use DateTimeInterface;
119
use Exception;
10+
use InvalidArgumentException;
11+
use ReflectionClass;
1212

1313
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)]
1414
class ArrayOfDateTimes
1515
{
16-
/** @var array<string, ReflectionClass<DateTime|DateTimeImmutable>> */
16+
/** @var ReflectionClass */
1717
private static array $_dateTimeReflections = [];
1818

1919
/** @var list<class-string<DateTime|DateTimeImmutable>> */
2020
private(set) public array $dateTimes;
2121

22-
/** @var array<string, ReflectionClass<DateTime|DateTimeImmutable>> */
22+
/** @var ReflectionClass */
2323
private(set) public array $resolvedDateTimeReflections = [];
2424

2525
/**

src/Attributes/PropertyAttributes/ArrayOfScalarTypes.php renamed to src/Attributes/PropertyAttributes/Types/ArrayOfScalarTypes.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<?php
22

3-
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes;
3+
namespace Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types;
44

55
use Attribute;
6-
use Nuxtifyts\PhpDto\Enums\Property\Type;
76
use InvalidArgumentException;
7+
use Nuxtifyts\PhpDto\Enums\Property\Type;
88

99
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)]
1010
class ArrayOfScalarTypes

src/Contexts/TypeContext/ResolvesArraySubContexts.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace Nuxtifyts\PhpDto\Contexts\TypeContext;
44

55
use InvalidArgumentException;
6-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfBackedEnums;
7-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
8-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfDateTimes;
6+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfBackedEnums;
7+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;
8+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfDateTimes;
9+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfScalarTypes;
910
use Nuxtifyts\PhpDto\Contexts\TypeContext;
1011
use Nuxtifyts\PhpDto\Enums\Property\Type;
11-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfScalarTypes;
1212
use ReflectionProperty;
1313

1414
/**

tests/Dummies/ArrayOfAttributesData.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
namespace Nuxtifyts\PhpDto\Tests\Dummies;
44

55
use DateTimeImmutable;
6-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfScalarTypes;
7-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfBackedEnums;
8-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfDateTimes;
9-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
6+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfBackedEnums;
7+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;
8+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfDateTimes;
9+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfScalarTypes;
1010
use Nuxtifyts\PhpDto\Data;
1111
use Nuxtifyts\PhpDto\Enums\Property\Type;
1212
use Nuxtifyts\PhpDto\Tests\Dummies\Enums\YesNoBackedEnum;

tests/Dummies/ArrayOfMixedAttributesData.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace Nuxtifyts\PhpDto\Tests\Dummies;
44

5-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfBackedEnums;
6-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfScalarTypes;
5+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfBackedEnums;
6+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfScalarTypes;
77
use Nuxtifyts\PhpDto\Data;
88
use Nuxtifyts\PhpDto\Enums\Property\Type;
99
use Nuxtifyts\PhpDto\Tests\Dummies\Enums\YesNoBackedEnum;

tests/Dummies/UserGroupData.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace Nuxtifyts\PhpDto\Tests\Dummies;
44

5-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfData;
6-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfScalarTypes;
5+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfData;
6+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfScalarTypes;
77
use Nuxtifyts\PhpDto\Data;
88
use Nuxtifyts\PhpDto\Enums\Property\Type;
99

tests/Unit/Attributes/ArrayOfBackedEnumTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
namespace Nuxtifyts\PhpDto\Tests\Unit\Attributes;
44

5-
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\ArrayOfBackedEnums;
5+
use InvalidArgumentException;
6+
use Nuxtifyts\PhpDto\Attributes\PropertyAttributes\Types\ArrayOfBackedEnums;
67
use Nuxtifyts\PhpDto\Tests\Dummies\Enums\YesNoEnum;
78
use Nuxtifyts\PhpDto\Tests\Dummies\PersonData;
89
use Nuxtifyts\PhpDto\Tests\Unit\UnitCase;
910
use PHPUnit\Framework\Attributes\CoversClass;
1011
use PHPUnit\Framework\Attributes\Test;
11-
use InvalidArgumentException;
1212

1313
#[CoversClass(ArrayOfBackedEnums::class)]
1414
final class ArrayOfBackedEnumTest extends UnitCase

0 commit comments

Comments
 (0)