Skip to content

Commit 6a380da

Browse files
committed
refactor: replace setAccessible calls with ReflectionHelper utility
1 parent 6e073e3 commit 6a380da

File tree

5 files changed

+35
-12
lines changed

5 files changed

+35
-12
lines changed

classes/DefaultArgumentRemoverReturnTypes100.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,13 @@ public static function removeDefaultArgumentsWithReflection(Invocation $invocati
9898
$reflection = new ReflectionClass($invocation);
9999

100100
$reflectionReturnType = $reflection->getProperty('returnType');
101-
$reflectionReturnType->setAccessible(true);
101+
ReflectionHelper::setAccessible($reflectionReturnType);
102102

103103
$reflectionIsOptional = $reflection->getProperty('isReturnTypeNullable');
104-
$reflectionIsOptional->setAccessible(true);
104+
ReflectionHelper::setAccessible($reflectionIsOptional);
105105

106106
$reflectionIsProxied = $reflection->getProperty('proxiedCall');
107-
$reflectionIsProxied->setAccessible(true);
107+
ReflectionHelper::setAccessible($reflectionIsProxied);
108108

109109
$returnType = $reflectionReturnType->getValue($invocation);
110110
$proxiedCall = $reflectionIsProxied->getValue($invocation);

classes/DefaultArgumentRemoverReturnTypes120.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ public static function removeDefaultArgumentsWithReflection(Invocation $invocati
9898
$reflection = new ReflectionClass($invocation);
9999

100100
$reflectionReturnType = $reflection->getProperty('returnType');
101-
$reflectionReturnType->setAccessible(true);
101+
ReflectionHelper::setAccessible($reflectionReturnType);
102102

103103
$reflectionIsOptional = $reflection->getProperty('isReturnTypeNullable');
104-
$reflectionIsOptional->setAccessible(true);
104+
ReflectionHelper::setAccessible($reflectionIsOptional);
105105

106106
$returnType = $reflectionReturnType->getValue($invocation);
107107

classes/PHPMock.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,19 @@ public function registerForTearDown(Deactivatable $deactivatable)
116116
$facade = Facade::instance();
117117

118118
$property = new ReflectionProperty(Facade::class, 'sealed');
119-
$property->setAccessible(true);
119+
ReflectionHelper::setAccessible($property);
120120
$property->setValue($facade, false);
121121

122122
$method = new ReflectionMethod($facade, 'deferredDispatcher');
123-
$method->setAccessible(true);
123+
ReflectionHelper::setAccessible($method);
124124
$dispatcher = $method->invoke($facade);
125125

126126
$propDispatcher = new ReflectionProperty($dispatcher, 'dispatcher');
127-
$propDispatcher->setAccessible(true);
127+
ReflectionHelper::setAccessible($propDispatcher);
128128
$directDispatcher = $propDispatcher->getValue($dispatcher);
129129

130130
$propSubscribers = new ReflectionProperty($directDispatcher, 'subscribers');
131-
$propSubscribers->setAccessible(true);
131+
ReflectionHelper::setAccessible($propSubscribers);
132132

133133
$facade->registerSubscriber(
134134
new MockDisabler(
@@ -239,7 +239,7 @@ private function prepareCustomTemplates()
239239
$reflection = new ReflectionClass($mockMethodClass);
240240

241241
$reflectionTemplates = $reflection->getProperty('templates');
242-
$reflectionTemplates->setAccessible(true);
242+
ReflectionHelper::setAccessible($reflectionTemplates);
243243

244244
$reflectionTemplates->setValue(null, $templates);
245245

classes/ReflectionHelper.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace phpmock\phpunit;
4+
5+
/**
6+
* @internal
7+
*/
8+
final class ReflectionHelper
9+
{
10+
private function __construct()
11+
{
12+
}
13+
14+
public static function setAccessible($reflection)
15+
{
16+
// As of PHP 8.1.0, reflection setAccessible is no-op; all properties are accessible by default.
17+
if (PHP_VERSION_ID >= 80100) {
18+
return;
19+
}
20+
21+
$reflection->setAccessible(true);
22+
}
23+
}

tests/MockObjectProxyTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ private function getMethodMatcher($invocationMocker)
9191
) {
9292
$reflection = new \ReflectionClass(InvocationMocker::class);
9393
$property = $reflection->getProperty('matcher');
94-
$property->setAccessible(true);
94+
ReflectionHelper::setAccessible($property);
9595
return $property->getValue($invocationMocker)->methodNameRule();
9696
}
9797

@@ -100,7 +100,7 @@ private function getMethodMatcher($invocationMocker)
100100
) {
101101
$reflection = new \ReflectionClass(InvocationMocker::class);
102102
$property = $reflection->getProperty('matcher');
103-
$property->setAccessible(true);
103+
ReflectionHelper::setAccessible($property);
104104
return $property->getValue($invocationMocker)->getMethodNameRule();
105105
}
106106

0 commit comments

Comments
 (0)