Не удается переопределить класс в плагине Drupal GraphQL - PullRequest
1 голос
/ 17 октября 2019

Следуя этому руководству

http://dirtystylus.com/2018/09/12/graphql-adding-fields-to-types-in-drupal-8/

Я пытаюсь создать новый плагин для поля GraphQL в моем приложении. Однако я получаю фатальную ошибку «Cannot redeclare class», хотя я почти уверен, что в моем приложении нет другого места с классом BackgroundImage.

Это мой dds/src/Plugin/GraphQL/Fields/FieldPluginBase.php файл, где dds - этокаталог пользовательского модуля:


namespace Drupal\dds\Plugin\GraphQL\Fields;

use Drupal\graphql\GraphQL\Execution\ResolveContext;
use Drupal\graphql\Plugin\GraphQL\Fields\FieldPluginBase;
use GraphQL\Type\Definition\ResolveInfo;

/**
 * A simple field that returns the background image.
 *
 * For simplicity reasons, this example does not utilize dependency injection.
 *
 * @GraphQLField(
 *   id = "backgroundimage",
 *   type = "String",
 *   name = "backgroundimage",
 *   nullable = true,
 *   multi = false
 * )
 */

class BackgroundImage extends FieldPluginBase {
  /**
   * {@inheritdoc}
   */
  public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
    // parent::resolveValues($value, $args, $context, $info);

    $fid = \Drupal::config('dds.settings')->get('background_image');
    yield $fid;
  }
}

Я получаю ошибку: Fatal error: Cannot declare class Drupal\dds\Plugin\GraphQL\Fields\BackgroundImage, because the name is already in use in /app/web/web/modules/custom/dds/src/Plugin/GraphQL/Fields/FieldPluginBase.php on line 33.

1 Ответ

0 голосов
/ 29 октября 2019

Проблема была в имени файла. После изменения на BackgroundImage.php все работает нормально.

...