From 4a67d0484dc5693221802c3deed9d53c850a733f Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:15:53 +1200 Subject: [PATCH 1/2] MNT Resolve deprecation warning in test (#602) --- tests/Schema/IntegrationTest.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/Schema/IntegrationTest.php b/tests/Schema/IntegrationTest.php index c563abe4..8739567d 100644 --- a/tests/Schema/IntegrationTest.php +++ b/tests/Schema/IntegrationTest.php @@ -43,7 +43,7 @@ use GraphQL\Validator\Rules\QueryComplexity; use GraphQL\Validator\Rules\QueryDepth; use GraphQL\Validator\ValidationContext; -use ReflectionProperty; +use ReflectionClass; class IntegrationTest extends SapphireTest { @@ -1688,11 +1688,10 @@ public function testGlobalRuleNotRemoved() private function removeDocumentValidatorRule(string $ruleName): void { - $reflectionRules = new ReflectionProperty(DocumentValidator::class, 'rules'); - $reflectionRules->setAccessible(true); - $rules = $reflectionRules->getValue(); + $reflectionRules = new ReflectionClass(DocumentValidator::class); + $rules = $reflectionRules->getStaticPropertyValue('rules'); unset($rules[$ruleName]); - $reflectionRules->setValue($rules); + $reflectionRules->setStaticPropertyValue('rules', $rules); } private function createProviderForComplexityOrDepth(int $limit): array From 76f8044d36c4d6c0270d3566ad6a352458fcf163 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:18:18 +1200 Subject: [PATCH 2/2] API Deprecate API that will be removed (#603) --- src/Dev/Build.php | 16 ++++++++++++++++ src/Dev/DevelopmentAdmin.php | 16 ++++++++++++++++ src/Extensions/DevBuildExtension.php | 14 ++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/src/Dev/Build.php b/src/Dev/Build.php index 97eb2b07..ed382c7b 100644 --- a/src/Dev/Build.php +++ b/src/Dev/Build.php @@ -9,6 +9,7 @@ use SilverStripe\Control\HTTPRequest; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\DebugView; +use SilverStripe\Dev\Deprecation; use SilverStripe\GraphQL\Schema\DataObject\FieldAccessor; use SilverStripe\GraphQL\Schema\Exception\EmptySchemaException; use SilverStripe\GraphQL\Schema\Exception\SchemaBuilderException; @@ -19,6 +20,9 @@ use SilverStripe\GraphQL\Schema\Storage\CodeGenerationStore; use SilverStripe\ORM\Connect\NullDatabaseException; +/** + * @deprecated 5.3.0 Will be replaced with SilverStripe\GraphQL\Dev\SchemaBuild + */ class Build extends Controller { private static $url_handlers = [ @@ -29,6 +33,18 @@ class Build extends Controller 'build' ]; + public function __construct() + { + parent::__construct(); + Deprecation::withNoReplacement(function () { + Deprecation::notice( + '5.4.0', + 'Will be replaced with SilverStripe\GraphQL\Dev\SchemaBuild', + Deprecation::SCOPE_CLASS + ); + }); + } + /** * @throws SchemaBuilderException * @throws SchemaNotFoundException diff --git a/src/Dev/DevelopmentAdmin.php b/src/Dev/DevelopmentAdmin.php index d1e29cc0..f2def245 100644 --- a/src/Dev/DevelopmentAdmin.php +++ b/src/Dev/DevelopmentAdmin.php @@ -15,8 +15,12 @@ use Exception; use Psr\Log\LoggerInterface; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Dev\Deprecation; use SilverStripe\GraphQL\Schema\Logger; +/** + * @deprecated 5.3.0 Will be removed without equivalent functionality to replace it + */ class DevelopmentAdmin extends Controller implements PermissionProvider { private static $allowed_actions = [ @@ -34,6 +38,18 @@ class DevelopmentAdmin extends Controller implements PermissionProvider 'CAN_DEV_GRAPHQL', ]; + public function __construct() + { + parent::__construct(); + Deprecation::withNoReplacement(function () { + Deprecation::notice( + '5.4.0', + 'Will be removed without equivalent functionality to replace it', + Deprecation::SCOPE_CLASS + ); + }); + } + protected function init() { parent::init(); diff --git a/src/Extensions/DevBuildExtension.php b/src/Extensions/DevBuildExtension.php index 40836ad2..e4d87928 100644 --- a/src/Extensions/DevBuildExtension.php +++ b/src/Extensions/DevBuildExtension.php @@ -6,6 +6,7 @@ use Psr\Log\LoggerInterface; use SilverStripe\Core\Config\Configurable; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Dev\Deprecation; use SilverStripe\GraphQL\Dev\Build; use SilverStripe\GraphQL\Schema\Logger; use SilverStripe\ORM\DatabaseAdmin; @@ -13,6 +14,7 @@ /** * @extends DataExtension + * @deprecated 5.4.0 Will be replaced with SilverStripe\GraphQL\Extensions\DbBuildExtension */ class DevBuildExtension extends DataExtension { @@ -23,6 +25,18 @@ class DevBuildExtension extends DataExtension */ private static bool $enabled = true; + public function __construct() + { + parent::__construct(); + Deprecation::withNoReplacement(function () { + Deprecation::notice( + '5.4.0', + 'Will be replaced with SilverStripe\GraphQL\Extensions\DbBuildExtension', + Deprecation::SCOPE_CLASS + ); + }); + } + public function onAfterBuild(): void { if (!static::config()->get('enabled')) {