Use dependency injection

Created on 8 May 2025, 11 days ago

Problem/Motivation

phpstan reports, among other things:

------ ------------------------------------------------------------------------------
Line modules/graphql_messenger/src/MessageWrapper.php
------ ------------------------------------------------------------------------------
14 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ -------------------------------------------------------------------------------------------------------
Line modules/graphql_metatag_schema_org_schema/src/Plugin/GraphQL/DataProducer/MetatagsSchemaOrg.php
------ -------------------------------------------------------------------------------------------------------
143 \Drupal calls should be avoided in classes, use dependency injection instead
------ -------------------------------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line modules/graphql_security/src/Routing/GraphqlSecurityRouteSubscriber.php
------ ------------------------------------------------------------------------------
17 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/EntitySchemaBuilder.php
------ ------------------------------------------------------------------------------
105 \Drupal calls should be avoided in classes, use dependency injection instead
119 \Drupal calls should be avoided in classes, use dependency injection instead
133 \Drupal calls should be avoided in classes, use dependency injection instead
147 \Drupal calls should be avoided in classes, use dependency injection instead
161 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/Form/CoreComposableSchemaFormHelper.php
------ ------------------------------------------------------------------------------
46 \Drupal calls should be avoided in classes, use dependency injection instead
48 \Drupal calls should be avoided in classes, use dependency injection instead
50 \Drupal calls should be avoided in classes, use dependency injection instead
163 \Drupal calls should be avoided in classes, use dependency injection instead
165 \Drupal calls should be avoided in classes, use dependency injection instead
253 \Drupal calls should be avoided in classes, use dependency injection instead
329 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/GraphQL/Enums/DrupalDateFormatEnum.php
------ ------------------------------------------------------------------------------
18 \Drupal calls should be avoided in classes, use dependency injection instead
21 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/GraphQL/Enums/EntityTypeEnum.php
------ ------------------------------------------------------------------------------
17 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/GraphQL/Enums/LangcodeEnum.php
------ ------------------------------------------------------------------------------
17 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/Plugin/GraphQL/DataProducer/Route.php
------ ------------------------------------------------------------------------------
259 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

------ ------------------------------------------------------------------------------
Line src/Wrappers/QueryConnection.php
------ ------------------------------------------------------------------------------
113 \Drupal calls should be avoided in classes, use dependency injection instead
115 \Drupal calls should be avoided in classes, use dependency injection instead
120 \Drupal calls should be avoided in classes, use dependency injection instead
------ ------------------------------------------------------------------------------

Steps to reproduce

phpstan analyse -l0 graphql_core_schema

Proposed resolution

  • In MessageWrapper, GraphqlSecurityRouteSubscriber, CoreComposableSchemaFormHelper, DrupalDateFormatEnum, EntityTypeEnum, LangcodeEnum, and QueryConnection implement ContainerInterface.
  • In MetatagsSchemaOrg and Route, add to the existing create() pattern.
  • Leave EntitySchemaBuilder alone since clearly this pattern was intentional.

Remaining tasks

Make a merge request.

πŸ“Œ Task
Status

Active

Version

1.0

Component

Code

Created by

πŸ‡ΊπŸ‡ΈUnited States BenStallings

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @BenStallings
  • Pipeline finished with Failed
    11 days ago
    Total: 249s
    #492635
  • Pipeline finished with Success
    11 days ago
    Total: 276s
    #492649
  • πŸ‡ΊπŸ‡ΈUnited States BenStallings
  • Pipeline finished with Success
    11 days ago
    Total: 257s
    #492653
  • Pipeline finished with Success
    11 days ago
    Total: 334s
    #492665
  • Pipeline finished with Failed
    11 days ago
    Total: 234s
    #492687
  • Pipeline finished with Failed
    11 days ago
    Total: 262s
    #492695
  • Pipeline finished with Failed
    11 days ago
    Total: 438s
    #492704
  • Pipeline finished with Failed
    10 days ago
    Total: 416s
    #493494
  • Pipeline finished with Failed
    10 days ago
    Total: 225s
    #493499
  • Pipeline finished with Failed
    10 days ago
    #493505
  • Pipeline finished with Success
    10 days ago
    Total: 372s
    #493509
  • πŸ‡ΊπŸ‡ΈUnited States BenStallings

    OK, I had to back off of QueryConnection, but now the tests are passing!

Production build 0.71.5 2024