for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Drupal\graphql_json\Plugin\GraphQL\Fields;
use Drupal\Core\DependencyInjection\DependencySerializationTrait;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\graphql\GraphQL\Execution\ResolveContext;
use Drupal\graphql\Plugin\GraphQL\Fields\FieldPluginBase;
use GraphQL\Type\Definition\ResolveInfo;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Serializer\SerializerInterface;
/**
* Serialize entities to json.
*
* @GraphQLField(
* id = "entity_to_json",
* name = "toJson",
* type = "JsonObject",
* parents = {"Entity"},
* deriver = "\Drupal\graphql_json\Plugin\Deriver\EntityToJsonDeriver"
* )
*/
class EntityToJson extends FieldPluginBase implements ContainerFactoryPluginInterface {
use DependencySerializationTrait;
* The serializer.
* @var \Symfony\Component\Serializer\SerializerInterface
protected $serializer;
* {@inheritdoc}
public static function create(
ContainerInterface $container,
array $configuration,
$plugin_id,
$plugin_definition
) {
return new static(
$configuration,
$plugin_definition,
$container->get('serializer')
);
}
public function __construct(
$pluginId,
$pluginDefinition,
SerializerInterface $serializer
$this->serializer = $serializer;
parent::__construct($configuration, $pluginId, $pluginDefinition);
protected function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
yield json_decode($this->serializer->serialize($value, 'json'), TRUE);