class SubrequestSubscriber in GraphQL 8.4
Same name and namespace in other branches
- 8.3 src/EventSubscriber/SubrequestSubscriber.php \Drupal\graphql\EventSubscriber\SubrequestSubscriber
Sets the language on subrequests.
Hierarchy
- class \Drupal\graphql\EventSubscriber\SubrequestSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface uses CurrentLanguageResetTrait
Expanded class hierarchy of SubrequestSubscriber
1 string reference to 'SubrequestSubscriber'
1 service uses SubrequestSubscriber
File
- src/
EventSubscriber/ SubrequestSubscriber.php, line 17
Namespace
Drupal\graphql\EventSubscriberView source
class SubrequestSubscriber implements EventSubscriberInterface {
use CurrentLanguageResetTrait;
/**
* Constructs a SubrequestSubscriber object.
*
* @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
* @param \Drupal\Core\StringTranslation\Translator\TranslatorInterface $translator
* @param \Drupal\Core\Session\AccountInterface $currentUser
* @param \Drupal\language\LanguageNegotiatorInterface $languageNegotiator
*/
public function __construct(LanguageManagerInterface $languageManager, TranslatorInterface $translator, AccountInterface $currentUser, LanguageNegotiatorInterface $languageNegotiator = NULL) {
$this->languageManager = $languageManager;
$this->translator = $translator;
$this->currentUser = $currentUser;
$this->languageNegotiator = $languageNegotiator;
}
/**
* Handle kernel request events.
*
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
* The kernel event object.
*/
public function onKernelRequest(GetResponseEvent $event) : void {
$request = $event
->getRequest();
if (!$request->attributes
->has('_graphql_subrequest')) {
return;
}
$request->attributes
->set('_controller', '\\Drupal\\graphql\\Controller\\SubrequestExtractionController:extract');
$this
->resetLanguageContext();
}
/**
* Handle kernel request finished events.
*
* @param \Symfony\Component\HttpKernel\Event\FinishRequestEvent $event
* The kernel event object.
*/
public function onKernelRequestFinished(FinishRequestEvent $event) : void {
$request = $event
->getRequest();
if (!$request->attributes
->has('_graphql_subrequest')) {
return;
}
$this
->resetLanguageContext();
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return [
KernelEvents::REQUEST => 'onKernelRequest',
KernelEvents::FINISH_REQUEST => 'onKernelRequestFinished',
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CurrentLanguageResetTrait:: |
protected | property | The current user service. | |
CurrentLanguageResetTrait:: |
protected | property | The language manager. | |
CurrentLanguageResetTrait:: |
protected | property | The language negotiator. | |
CurrentLanguageResetTrait:: |
protected | property | The translator. | |
CurrentLanguageResetTrait:: |
protected | function | Resets the global language context across different services. | |
SubrequestSubscriber:: |
public static | function | Returns an array of event names this subscriber wants to listen to. | |
SubrequestSubscriber:: |
public | function | Handle kernel request events. | |
SubrequestSubscriber:: |
public | function | Handle kernel request finished events. | |
SubrequestSubscriber:: |
public | function | Constructs a SubrequestSubscriber object. |