Skip to content

Commit 07d290f

Browse files
authored
Merge pull request #207 from W0rma/reflection-set-accessible
Do not call Reflection*::setAccessible() in PHP >= 8.1
2 parents faed855 + 8c42cfd commit 07d290f

File tree

6 files changed

+18
-6
lines changed

6 files changed

+18
-6
lines changed

src/DeepCopy/DeepCopy.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,9 @@ function ($object) {
267267
}
268268
}
269269

270-
$property->setAccessible(true);
270+
if (PHP_VERSION_ID < 80100) {
271+
$property->setAccessible(true);
272+
}
271273

272274
// Ignore uninitialized properties (for PHP >7.4)
273275
if (method_exists($property, 'isInitialized') && !$property->isInitialized($object)) {

src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ public function apply($object, $property, $objectCopier)
1919
{
2020
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
2121

22-
$reflectionProperty->setAccessible(true);
22+
if (PHP_VERSION_ID < 80100) {
23+
$reflectionProperty->setAccessible(true);
24+
}
2325
$oldCollection = $reflectionProperty->getValue($object);
2426

2527
$newCollection = $oldCollection->map(

src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ class DoctrineEmptyCollectionFilter implements Filter
2121
public function apply($object, $property, $objectCopier)
2222
{
2323
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
24-
$reflectionProperty->setAccessible(true);
24+
if (PHP_VERSION_ID < 80100) {
25+
$reflectionProperty->setAccessible(true);
26+
}
2527

2628
$reflectionProperty->setValue($object, new ArrayCollection());
2729
}

src/DeepCopy/Filter/ReplaceFilter.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ public function __construct(callable $callable)
3030
public function apply($object, $property, $objectCopier)
3131
{
3232
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
33-
$reflectionProperty->setAccessible(true);
33+
if (PHP_VERSION_ID < 80100) {
34+
$reflectionProperty->setAccessible(true);
35+
}
3436

3537
$value = call_user_func($this->callback, $reflectionProperty->getValue($object));
3638

src/DeepCopy/Filter/SetNullFilter.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ public function apply($object, $property, $objectCopier)
1818
{
1919
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
2020

21-
$reflectionProperty->setAccessible(true);
21+
if (PHP_VERSION_ID < 80100) {
22+
$reflectionProperty->setAccessible(true);
23+
}
2224
$reflectionProperty->setValue($object, null);
2325
}
2426
}

src/DeepCopy/Matcher/PropertyTypeMatcher.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ public function matches($object, $property)
3939
return false;
4040
}
4141

42-
$reflectionProperty->setAccessible(true);
42+
if (PHP_VERSION_ID < 80100) {
43+
$reflectionProperty->setAccessible(true);
44+
}
4345

4446
// Uninitialized properties (for PHP >7.4)
4547
if (method_exists($reflectionProperty, 'isInitialized') && !$reflectionProperty->isInitialized($object)) {

0 commit comments

Comments
 (0)