graphql_core_schema-1.0.x-dev/modules/graphql_form_schema/src/Plugin/GraphQL/EntityFormBase.php
modules/graphql_form_schema/src/Plugin/GraphQL/EntityFormBase.php
<?php
namespace Drupal\graphql_form_schema\Plugin\GraphQL;
use Drupal\Core\Entity\EntityFormBuilderInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\FormBuilderInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\graphql\Plugin\GraphQL\DataProducer\DataProducerPluginBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Base class for entity form producers.
*/
class EntityFormBase extends DataProducerPluginBase implements ContainerFactoryPluginInterface {
/**
* The entity form builder.
*
* @var \Drupal\Core\Entity\EntityFormBuilderInterface
*/
protected $entityFormBuilder;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* The form builder.
*
* @var \Drupal\Core\Form\FormBuilderInterface
*/
protected $formBuilder;
/**
* {@inheritdoc}
*/
public static function create(
ContainerInterface $container,
array $configuration,
$pluginId,
$pluginDefinition,
) {
return new static(
$configuration,
$pluginId,
$pluginDefinition,
$container->get('entity.form_builder'),
$container->get('entity_type.manager'),
$container->get('form_builder')
);
}
/**
* The constructor.
*
* @param array $configuration
* The plugin configuration array.
* @param string $pluginId
* The plugin id.
* @param mixed $pluginDefinition
* The plugin definition.
* @param \Drupal\Core\Entity\EntityFormBuilderInterface $entityFormBuilder
* The entity form builder.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
* The entity type manager.
* @param \Drupal\Core\Form\FormBuilderInterface $formBuilder
* The form builder.
*/
public function __construct(
array $configuration,
$pluginId,
$pluginDefinition,
EntityFormBuilderInterface $entityFormBuilder,
EntityTypeManagerInterface $entityTypeManager,
FormBuilderInterface $formBuilder,
) {
parent::__construct($configuration, $pluginId, $pluginDefinition);
$this->entityFormBuilder = $entityFormBuilder;
$this->entityTypeManager = $entityTypeManager;
$this->formBuilder = $formBuilder;
}
}
