1. Go to this page and download the library: Download youshido/graphql-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
youshido / graphql-bundle example snippets
new Youshido\GraphQLBundle\GraphQLBundle(),
class RootDirField extends AbstractContainerAwareField
{
/**
* @inheritdoc
*/
public function getType()
{
return new StringType();
}
/**
* @inheritdoc
*/
public function resolve($value, array $args, ResolveInfo $info)
{
return $this->container->getParameter('kernel.root_dir');
}
/**
* @inheritdoc
*/
public function getName()
{
return 'rootDir';
}
namespace ...\...\..;
use Youshido\GraphQL\Event\ResolveEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MyGraphQLResolveEventSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
'graphql.pre_resolve' => 'onPreResolve',
'graphql.post_resolve' => 'onPostResolve'
];
}
public function onPreResolve(ResolveEvent $event)
{
//$event->getFields / $event->getAstFields()..
}
public function onPostResolve(ResolveEvent $event)
{
//$event->getFields / $event->getAstFields()..
}
}
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
use Youshido\GraphQL\Execution\ResolveInfo;
use Youshido\GraphQLBundle\Security\Manager\SecurityManagerInterface;
class GraphQLVoter extends Voter
{
/**
* @inheritdoc
*/
protected function supports($attribute, $subject)
{
return in_array($attribute, [SecurityManagerInterface::RESOLVE_FIELD_ATTRIBUTE, SecurityManagerInterface::RESOLVE_ROOT_OPERATION_ATTRIBUTE]);
}
/**
* @inheritdoc
*/
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
{
// your own validation logic here
if (SecurityManagerInterface::RESOLVE_FIELD_ATTRIBUTE == $attribute) {
/** @var $subject ResolveInfo */
if ($subject->getField()->getName() == 'hello') {
return false;
}
return true;
} elseif (SecurityManagerInterface::RESOLVE_ROOT_OPERATION_ATTRIBUTE == $attribute) {
/** @var $subject Query */
if ($subject->getName() == '__schema') {
return true;
}
}
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.