function OriginatorSubscriber::executeInEnvironment

Invokes the given callback after switching the config language.

@template T

@todo Replace with execution environment once that is available. @see: https://www.drupal.org/i/3536307

Parameters

string|null $langcode: The language code.

callable(): T $callback: Callback to execute inside substituted environment.

Return value

T Returns the result returned by the callback.

1 call to OriginatorSubscriber::executeInEnvironment()
OriginatorSubscriber::getSiteAddress in core/lib/Drupal/Core/Mailer/EventSubscriber/OriginatorSubscriber.php
Returns the site email address.

File

core/lib/Drupal/Core/Mailer/EventSubscriber/OriginatorSubscriber.php, line 128

Class

OriginatorSubscriber
Message subscriber which sets the from and sender headers.

Namespace

Drupal\Core\Mailer\EventSubscriber

Code

protected function executeInEnvironment(?string $langcode, callable $callback) : mixed {
  $originalLanguage = $this->languageManager
    ->getConfigOverrideLanguage();
  if ($langcode && $language = $this->languageManager
    ->getLanguage($langcode)) {
    $this->languageManager
      ->setConfigOverrideLanguage($language);
  }
  try {
    return $callback();
  } finally {
    $this->languageManager
      ->setConfigOverrideLanguage($originalLanguage);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.