Skip to content

Commit 0cd8dfb

Browse files
authored
Check if the language module is enabled. (#835)
1 parent 3e904c4 commit 0cd8dfb

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

graphql.services.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ services:
8181
# Reset the current language during operations.
8282
graphql.operation_subscriber:
8383
class: Drupal\graphql\EventSubscriber\OperationSubscriber
84-
arguments: ['@language_manager', '@string_translation', '@current_user', '@?language_negotiator']
84+
arguments: ['@module_handler', '@language_manager', '@string_translation', '@current_user', '@?language_negotiator']
8585
tags:
8686
- { name: event_subscriber }
8787

src/EventSubscriber/OperationSubscriber.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,37 @@
22

33
namespace Drupal\graphql\EventSubscriber;
44

5+
use Drupal\Core\Extension\ModuleHandlerInterface;
56
use Drupal\Core\Language\LanguageManagerInterface;
67
use Drupal\Core\Session\AccountInterface;
78
use Drupal\Core\StringTranslation\Translator\TranslatorInterface;
89
use Drupal\graphql\Event\OperationEvent;
910
use Drupal\graphql\Plugin\LanguageNegotiation\OperationLanguageNegotiation;
10-
use Drupal\language\ConfigurableLanguageManagerInterface;
1111
use Drupal\language\LanguageNegotiatorInterface;
1212
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1313

1414
class OperationSubscriber implements EventSubscriberInterface {
1515

1616
use CurrentLanguageResetTrait;
1717

18+
/**
19+
* The module handler service.
20+
*
21+
* @var \Drupal\Core\Extension\ModuleHandlerInterface
22+
*/
23+
protected $moduleHandler;
24+
1825
/**
1926
* Constructs a OperationSubscriber object.
2027
*
28+
* @param \Drupal\Core\Extension\ModuleHandlerInterface $moduleHandler
2129
* @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
2230
* @param \Drupal\Core\StringTranslation\Translator\TranslatorInterface $translator
2331
* @param \Drupal\Core\Session\AccountInterface $currentUser
2432
* @param \Drupal\language\LanguageNegotiatorInterface $languageNegotiator
2533
*/
26-
public function __construct(LanguageManagerInterface $languageManager, TranslatorInterface $translator, AccountInterface $currentUser, LanguageNegotiatorInterface $languageNegotiator = NULL) {
34+
public function __construct(ModuleHandlerInterface $moduleHandler, LanguageManagerInterface $languageManager, TranslatorInterface $translator, AccountInterface $currentUser, LanguageNegotiatorInterface $languageNegotiator = NULL) {
35+
$this->moduleHandler = $moduleHandler;
2736
$this->languageManager = $languageManager;
2837
$this->translator = $translator;
2938
$this->currentUser = $currentUser;
@@ -37,7 +46,7 @@ public function __construct(LanguageManagerInterface $languageManager, Translato
3746
* The kernel event object.
3847
*/
3948
public function onBeforeOperation(OperationEvent $event) {
40-
if (!empty($this->languageNegotiator)) {
49+
if ($this->moduleHandler->moduleExists('language') && !empty($this->languageNegotiator)) {
4150
OperationLanguageNegotiation::setContext($event->getContext());
4251
}
4352

@@ -51,7 +60,7 @@ public function onBeforeOperation(OperationEvent $event) {
5160
* The kernel event object.
5261
*/
5362
public function onAfterOperation(OperationEvent $event) {
54-
if (!empty($this->languageNegotiator)) {
63+
if ($this->moduleHandler->moduleExists('language') && !empty($this->languageNegotiator)) {
5564
OperationLanguageNegotiation::setContext($event->getContext());
5665
}
5766

0 commit comments

Comments
 (0)