Метод reset класса LocaleSwitcher
Метод reset класса LocaleSwitcher
возвращает локаль к тому значению, которое
было установлено до первого вызова метода
setLocale. Он не принимает параметров
и используется для отката изменений локали
в рамках одного запроса.
Класс LocaleSwitcher доступен через
сервис translator и позволяет временно
переключать локаль без влияния на глобальное
состояние приложения. Метод reset удобен
в ситуациях, когда нужно вернуть исходную
локаль после выполнения блока кода.
Синтаксис
public function reset(): void
Пример
Давайте получим сервис LocaleSwitcher
и переключим локаль с 'en' на 'fr',
а затем сбросим её обратно:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Contracts\Translation\LocaleSwitcherInterface;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(LocaleSwitcherInterface $localeSwitcher): Response
{
$localeSwitcher->setLocale('en');
echo $localeSwitcher->getLocale();
$localeSwitcher->setLocale('fr');
echo $localeSwitcher->getLocale();
$localeSwitcher->reset();
echo $localeSwitcher->getLocale();
return new Response();
}
}
?>
Результат выполнения кода:
"enfr en"
Пример
Давайте переключим локаль внутри блока кода и сбросим её после завершения:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Contracts\Translation\LocaleSwitcherInterface;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(LocaleSwitcherInterface $localeSwitcher): Response
{
$localeSwitcher->setLocale('de');
echo $localeSwitcher->getLocale();
$localeSwitcher->reset();
echo $localeSwitcher->getLocale();
return new Response();
}
}
?>
Результат выполнения кода:
"deen"
Смотрите также
-
класс
LocaleSwitcher,
который управляет текущей локалью приложения -
метод
setLocale,
который устанавливает новую локаль -
метод
getLocale,
который возвращает текущую локаль -
метод
runWithLocale,
который выполняет код с временной локалью