From 90a9a74155ed67caaf06a3313f6509cabe11584c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bundyra?= Date: Wed, 19 Nov 2025 20:22:23 +0000 Subject: [PATCH 1/4] Display deprecation notices in PHPUnit output --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d6c38f5..f9a9a5d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -704,4 +704,4 @@ jobs: run: composer require phpunit/phpunit:~${{ matrix.phpunit-version }} --no-interaction --no-progress - name: PHPUnit - run: vendor/bin/phpunit + run: vendor/bin/phpunit --display-deprecations From 1f9bd3aa2a0143b792747b915b1f2e8d1413aded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bundyra?= Date: Wed, 19 Nov 2025 20:30:04 +0000 Subject: [PATCH 2/4] Update phpunit.xml to display deprecations --- .github/workflows/tests.yml | 2 +- phpunit.xml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f9a9a5d..d6c38f5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -704,4 +704,4 @@ jobs: run: composer require phpunit/phpunit:~${{ matrix.phpunit-version }} --no-interaction --no-progress - name: PHPUnit - run: vendor/bin/phpunit --display-deprecations + run: vendor/bin/phpunit diff --git a/phpunit.xml b/phpunit.xml index 203311b..7b1b342 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,6 +1,8 @@ tests/ From 6e073e3e1881a94073aa42b4f3c39fb0ee002bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bundyra?= Date: Wed, 19 Nov 2025 20:32:27 +0000 Subject: [PATCH 3/4] Update phpunit.xml to display deprecations --- phpunit.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/phpunit.xml b/phpunit.xml index 7b1b342..17ace8f 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,7 +1,6 @@ From 6a380da02faf83ef0ff79496e977a4f4a3ea07c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bundyra?= Date: Wed, 19 Nov 2025 21:01:16 +0000 Subject: [PATCH 4/4] refactor: replace setAccessible calls with ReflectionHelper utility --- .../DefaultArgumentRemoverReturnTypes100.php | 6 ++--- .../DefaultArgumentRemoverReturnTypes120.php | 4 ++-- classes/PHPMock.php | 10 ++++---- classes/ReflectionHelper.php | 23 +++++++++++++++++++ tests/MockObjectProxyTest.php | 4 ++-- 5 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 classes/ReflectionHelper.php diff --git a/classes/DefaultArgumentRemoverReturnTypes100.php b/classes/DefaultArgumentRemoverReturnTypes100.php index c32dcbb..57b2218 100644 --- a/classes/DefaultArgumentRemoverReturnTypes100.php +++ b/classes/DefaultArgumentRemoverReturnTypes100.php @@ -98,13 +98,13 @@ public static function removeDefaultArgumentsWithReflection(Invocation $invocati $reflection = new ReflectionClass($invocation); $reflectionReturnType = $reflection->getProperty('returnType'); - $reflectionReturnType->setAccessible(true); + ReflectionHelper::setAccessible($reflectionReturnType); $reflectionIsOptional = $reflection->getProperty('isReturnTypeNullable'); - $reflectionIsOptional->setAccessible(true); + ReflectionHelper::setAccessible($reflectionIsOptional); $reflectionIsProxied = $reflection->getProperty('proxiedCall'); - $reflectionIsProxied->setAccessible(true); + ReflectionHelper::setAccessible($reflectionIsProxied); $returnType = $reflectionReturnType->getValue($invocation); $proxiedCall = $reflectionIsProxied->getValue($invocation); diff --git a/classes/DefaultArgumentRemoverReturnTypes120.php b/classes/DefaultArgumentRemoverReturnTypes120.php index 8cce8fa..e41d2e3 100644 --- a/classes/DefaultArgumentRemoverReturnTypes120.php +++ b/classes/DefaultArgumentRemoverReturnTypes120.php @@ -98,10 +98,10 @@ public static function removeDefaultArgumentsWithReflection(Invocation $invocati $reflection = new ReflectionClass($invocation); $reflectionReturnType = $reflection->getProperty('returnType'); - $reflectionReturnType->setAccessible(true); + ReflectionHelper::setAccessible($reflectionReturnType); $reflectionIsOptional = $reflection->getProperty('isReturnTypeNullable'); - $reflectionIsOptional->setAccessible(true); + ReflectionHelper::setAccessible($reflectionIsOptional); $returnType = $reflectionReturnType->getValue($invocation); diff --git a/classes/PHPMock.php b/classes/PHPMock.php index c75a9d3..13e4a0c 100644 --- a/classes/PHPMock.php +++ b/classes/PHPMock.php @@ -116,19 +116,19 @@ public function registerForTearDown(Deactivatable $deactivatable) $facade = Facade::instance(); $property = new ReflectionProperty(Facade::class, 'sealed'); - $property->setAccessible(true); + ReflectionHelper::setAccessible($property); $property->setValue($facade, false); $method = new ReflectionMethod($facade, 'deferredDispatcher'); - $method->setAccessible(true); + ReflectionHelper::setAccessible($method); $dispatcher = $method->invoke($facade); $propDispatcher = new ReflectionProperty($dispatcher, 'dispatcher'); - $propDispatcher->setAccessible(true); + ReflectionHelper::setAccessible($propDispatcher); $directDispatcher = $propDispatcher->getValue($dispatcher); $propSubscribers = new ReflectionProperty($directDispatcher, 'subscribers'); - $propSubscribers->setAccessible(true); + ReflectionHelper::setAccessible($propSubscribers); $facade->registerSubscriber( new MockDisabler( @@ -239,7 +239,7 @@ private function prepareCustomTemplates() $reflection = new ReflectionClass($mockMethodClass); $reflectionTemplates = $reflection->getProperty('templates'); - $reflectionTemplates->setAccessible(true); + ReflectionHelper::setAccessible($reflectionTemplates); $reflectionTemplates->setValue(null, $templates); diff --git a/classes/ReflectionHelper.php b/classes/ReflectionHelper.php new file mode 100644 index 0000000..a65e827 --- /dev/null +++ b/classes/ReflectionHelper.php @@ -0,0 +1,23 @@ += 80100) { + return; + } + + $reflection->setAccessible(true); + } +} diff --git a/tests/MockObjectProxyTest.php b/tests/MockObjectProxyTest.php index e9f35e4..40c52a8 100644 --- a/tests/MockObjectProxyTest.php +++ b/tests/MockObjectProxyTest.php @@ -91,7 +91,7 @@ private function getMethodMatcher($invocationMocker) ) { $reflection = new \ReflectionClass(InvocationMocker::class); $property = $reflection->getProperty('matcher'); - $property->setAccessible(true); + ReflectionHelper::setAccessible($property); return $property->getValue($invocationMocker)->methodNameRule(); } @@ -100,7 +100,7 @@ private function getMethodMatcher($invocationMocker) ) { $reflection = new \ReflectionClass(InvocationMocker::class); $property = $reflection->getProperty('matcher'); - $property->setAccessible(true); + ReflectionHelper::setAccessible($property); return $property->getValue($invocationMocker)->getMethodNameRule(); }