Skip to content

Commit bedf5b5

Browse files
committed
Add collection for somes PHP classes
1 parent 92fe23b commit bedf5b5

File tree

60 files changed

+919
-6
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+919
-6
lines changed

bin/dev/generate-php-collections.php

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111

1212
require $rootPath . '/vendor/autoload.php';
1313

14+
$maker = new ObjectCollectionMaker();
15+
$nullableMaker = new ObjectNullableCollectionMaker();
16+
$collectionPath = $rootPath . '/src/ObjectCollection';
17+
$collectionNamespace = 'Steevanb\\PhpCollection\\ObjectCollection';
18+
1419
$interfaces = [
1520
'\\' . BackedEnum::class,
1621
'\\' . Countable::class,
@@ -21,13 +26,50 @@
2126
'\\' . UnitEnum::class
2227
];
2328

24-
$maker = new ObjectCollectionMaker();
25-
$nullableMaker = new ObjectNullableCollectionMaker();
26-
2729
foreach ($interfaces as $interface) {
2830
echo 'Generate collection for ' . $interface . '.' . "\n";
29-
$maker->make($interface, $rootPath . '/src/ObjectCollection', 'Steevanb\\PhpCollection\\ObjectCollection');
31+
$maker->make($interface, $collectionPath, $collectionNamespace);
3032

3133
echo 'Generate nullable collection for ' . $interface . '.' . "\n";
32-
$nullableMaker->make($interface, $rootPath . '/src/ObjectCollection', 'Steevanb\\PhpCollection\\ObjectCollection');
34+
$nullableMaker->make($interface, $collectionPath, $collectionNamespace);
35+
}
36+
37+
$classes = [
38+
'\\' . DateInterval::class,
39+
'\\' . DatePeriod::class,
40+
'\\' . DateTime::class,
41+
'\\' . DateTimeImmutable::class,
42+
'\\' . DateTimeZone::class,
43+
'\\' . Reflection::class,
44+
'\\' . ReflectionAttribute::class,
45+
'\\' . ReflectionClass::class,
46+
'\\' . ReflectionClassConstant::class,
47+
'\\' . ReflectionEnum::class,
48+
'\\' . ReflectionEnumBackedCase::class,
49+
'\\' . ReflectionEnumUnitCase::class,
50+
'\\' . ReflectionExtension::class,
51+
'\\' . ReflectionFiber::class,
52+
'\\' . ReflectionFunction::class,
53+
'\\' . ReflectionFunctionAbstract::class,
54+
'\\' . ReflectionGenerator::class,
55+
'\\' . ReflectionIntersectionType::class,
56+
'\\' . ReflectionMethod::class,
57+
'\\' . ReflectionNamedType::class,
58+
'\\' . ReflectionObject::class,
59+
'\\' . ReflectionParameter::class,
60+
'\\' . ReflectionProperty::class,
61+
'\\' . ReflectionReference::class,
62+
'\\' . ReflectionType::class,
63+
'\\' . ReflectionUnionType::class,
64+
'\\' . SplFileInfo::class,
65+
'\\' . SplFileObject::class,
66+
'\\' . stdClass::class
67+
];
68+
69+
foreach ($classes as $class) {
70+
echo 'Generate collection for ' . $class . '.' . "\n";
71+
$maker->make($class, $collectionPath, $collectionNamespace);
72+
73+
echo 'Generate nullable collection for ' . $class . '.' . "\n";
74+
$nullableMaker->make($class, $collectionPath, $collectionNamespace);
3375
}

changelog.md

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
- Add support for Symfony `7.1`
44
- Add `ObjectCollectionMaker` and `ObjectNullableCollectionMaker`
55
- Add `bin/dev/generate-php-collections` and `bin/dev/generate-php-collections.php`
6-
- Add collections for PHP internal classes or interfaces, all in namespace `Steevanb\PhpCollection\ObjectCollection`:
6+
- Add collections for some PHP internal interfaces, all in namespace `Steevanb\PhpCollection\ObjectCollection`:
77
- `BackedEnumCollection`
88
- `BackedEnumNullableCollection`
99
- `CountableCollection`
@@ -18,6 +18,65 @@
1818
- `StringableNullableCollection`
1919
- `UnitEnumCollection`
2020
- `UnitEnumNullableCollection`
21+
Add collections for some PHP internal classes, all in namespace `Steevanb\PhpCollection\ObjectCollection`:
22+
- `DateIntervalCollection`
23+
- `DateIntervalNullableCollection`
24+
- `DatePeriodCollection`
25+
- `DatePeriodNullableCollection`
26+
- `DateTimeCollection`
27+
- `DateTimeNullableCollection`
28+
- `DateTimeImmutableCollection`
29+
- `DateTimeImmutableNullableCollection`
30+
- `DateTimeZoneCollection`
31+
- `DateTimeZoneNullableCollection`
32+
- `ReflectionCollection`
33+
- `ReflectionNullableCollection`
34+
- `ReflectionAttributeCollection`
35+
- `ReflectionAttributeNullableCollection`
36+
- `ReflectionClassCollection`
37+
- `ReflectionClassNullableCollection`
38+
- `ReflectionClassConstantCollection`
39+
- `ReflectionClassConstantNullableCollection`
40+
- `ReflectionEnumCollection`
41+
- `ReflectionEnumNullableCollection`
42+
- `ReflectionEnumBackedCaseCollection`
43+
- `ReflectionEnumBackedCaseNullableCollection`
44+
- `ReflectionEnumUnitCaseCollection`
45+
- `ReflectionEnumUnitCaseNullableCollection`
46+
- `ReflectionExtensionCollection`
47+
- `ReflectionExtensionNullableCollection`
48+
- `ReflectionFiberCollection`
49+
- `ReflectionFiberNullableCollection`
50+
- `ReflectionFunctionCollection`
51+
- `ReflectionFunctionNullableCollection`
52+
- `ReflectionFunctionAbstractCollection`
53+
- `ReflectionFunctionAbstractNullableCollection`
54+
- `ReflectionGeneratorCollection`
55+
- `ReflectionGeneratorNullableCollection`
56+
- `ReflectionIntersectionTypeCollection`
57+
- `ReflectionIntersectionTypeNullableCollection`
58+
- `ReflectionMethodCollection`
59+
- `ReflectionMethodNullableCollection`
60+
- `ReflectionNamedTypeCollection`
61+
- `ReflectionNamedTypeNullableCollection`
62+
- `ReflectionObjectCollection`
63+
- `ReflectionObjectNullableCollection`
64+
- `ReflectionParameterCollection`
65+
- `ReflectionParameterNullableCollection`
66+
- `ReflectionPropertyCollection`
67+
- `ReflectionPropertyNullableCollection`
68+
- `ReflectionReferenceCollection`
69+
- `ReflectionReferenceNullableCollection`
70+
- `ReflectionTypeCollection`
71+
- `ReflectionTypeNullableCollection`
72+
- `ReflectionUnionTypeCollection`
73+
- `ReflectionUnionTypeNullableCollection`
74+
- `SplFileInfoCollection`
75+
- `SplFileInfoNullableCollection`
76+
- `SplFileObjectCollection`
77+
- `SplFileObjectNullableCollection`
78+
- `StdClassCollection`
79+
- `StdClassNullableCollection`
2180

2281
### [6.2.0](../../compare/6.1.0...6.2.0) - 2024-07-08
2382

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\DateInterval> */
8+
class DateIntervalCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateInterval::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\DateInterval|null> */
8+
class DateIntervalNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateInterval::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\DatePeriod> */
8+
class DatePeriodCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DatePeriod::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\DatePeriod|null> */
8+
class DatePeriodNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DatePeriod::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\DateTime> */
8+
class DateTimeCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateTime::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\DateTimeImmutable> */
8+
class DateTimeImmutableCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateTimeImmutable::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\DateTimeImmutable|null> */
8+
class DateTimeImmutableNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateTimeImmutable::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\DateTime|null> */
8+
class DateTimeNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateTime::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\DateTimeZone> */
8+
class DateTimeZoneCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateTimeZone::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\DateTimeZone|null> */
8+
class DateTimeZoneNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \DateTimeZone::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\ReflectionAttribute<object>> */
8+
class ReflectionAttributeCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \ReflectionAttribute::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\ReflectionAttribute<object>|null> */
8+
class ReflectionAttributeNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \ReflectionAttribute::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\ReflectionClass<object>> */
8+
class ReflectionClassCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \ReflectionClass::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\ReflectionClassConstant> */
8+
class ReflectionClassConstantCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \ReflectionClassConstant::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\ReflectionClassConstant|null> */
8+
class ReflectionClassConstantNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \ReflectionClassConstant::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectNullableCollection<\ReflectionClass<object>|null> */
8+
class ReflectionClassNullableCollection extends AbstractObjectNullableCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \ReflectionClass::class;
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Steevanb\PhpCollection\ObjectCollection;
6+
7+
/** @extends AbstractObjectCollection<\Reflection> */
8+
class ReflectionCollection extends AbstractObjectCollection
9+
{
10+
public static function getValueFqcn(): string
11+
{
12+
return \Reflection::class;
13+
}
14+
}

0 commit comments

Comments
 (0)