8000 Merge branch '5.4' into 6.0 · symfony/symfony@dab63e6 · GitHub
[go: up one dir, main page]

Skip to content

Commit dab63e6

Browse files
committed
Merge branch '5.4' into 6.0
* 5.4: Fix KernelBrowser::loginUser() causing deprecation use $sessionId instead of $sessionCookiePath on SessionUtils::popSessionCookie call [Translation][Loco] Make http requests synchronous when reading the Loco API
2 parents c236a3d + d7d2c48 commit dab63e6

File tree

3 files changed

+24
-33
lines changed

3 files changed

+24
-33
lines changed

src/Symfony/Component/HttpKernel/EventListener/AbstractSessionListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public function onKernelResponse(ResponseEvent $event)
141141
$sessionCookieHttpOnly = $this->sessionOptions['cookie_httponly'] ?? true;
142142
$sessionCookieSameSite = $this->sessionOptions['cookie_samesite'] ?? Cookie::SAMESITE_LAX;
143143

144-
SessionUtils::popSessionCookie($sessionName, $sessionCookiePath);
144+
SessionUtils::popSessionCookie($sessionName, $sessionId);
145145

146146
$request = $event->getRequest();
147147
$requestSessionCookieId = $request->cookies->get($sessionName);

src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ public function testSessionUsageLogIfStatelessAndSessionUsed()
358358
public function testSessionIsSavedWhenUnexpectedSessionExceptionThrown()
359359
{
360360
$session = $this->createMock(Session::class);
361+
$session->expects($this->exactly(1))->method('getId')->willReturn('123456');
361362
$session->expects($this->exactly(1))->method('getName')->willReturn('PHPSESSID');
362363
$session->method('isStarted')->willReturn(true);
363364
$session->expects($this->once())->method('getUsageIndex')->willReturn(1);

src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -90,47 +90,37 @@ public function read(array $domains, array $locales): TranslatorBag
9090
{
9191
$domains = $domains ?: ['*'];
9292
$translatorBag = new TranslatorBag();
93-
$responses = [];
9493

9594
foreach ($locales as $locale) {
9695
foreach ($domains as $domain) {
97-
$responses[] = [
98-
'response' => $this->client->request('GET', sprintf('export/locale/%s.xlf', rawurlencode($locale)), [
99-
'query' => [
100-
'filter' => $domain,
101-
'status' => 'translated',
102-
],
103-
]),
104-
'locale' => $locale,
105-
'domain' => $domain,
106-
];
107-
}
108-
}
109-
110-
foreach ($responses as $response) {
111-
$locale = $response['locale'];
112-
$domain = $response['domain'];
113-
$response = $response['response'];
96+
// Loco forbids concurrent requests, so the requests must be synchronous in order to prevent "429 Too Many Requests" errors.
97+
$response = $this->client->request('GET', sprintf('export/locale/%s.xlf', rawurlencode($locale)), [
98+
'query' => [
99+
'filter' => $domain,
100+
'status' => 'translated',
101+
],
102+
]);
103+
104+
if (404 === $response->getStatusCode()) {
105+
$this->logger->warning(sprintf('Locale "%s" for domain "%s" does not exist in Loco.', $locale, $domain));
106+
continue;
107+
}
114108

115-
if (404 === $response->getStatusCode()) {
116-
$this->logger->warning(sprintf('Locale "%s" for domain "%s" does not exist in Loco.', $locale, $domain));
117-
continue;
118-
}
109+
$responseContent = $response->getContent(false);
119110

120-
$responseContent = $response->getContent(false);
111+
if (200 !== $response->getStatusCode()) {
112+
throw new ProviderException('Unable to read the Loco response: '.$responseContent, $response);
113+
}
121114

122-
if (200 !== $response->getStatusCode()) {
123-
throw new ProviderException('Unable to read the Loco response: '.$responseContent, $response);
124-
}
115+
$locoCatalogue = $this->loader->load($responseContent, $locale, $domain);
116+
$catalogue = new MessageCatalogue($locale);
125117

126-
$locoCatalogue = $this->loader->load($responseContent, $locale, $domain);
127-
$catalogue = new MessageCatalogue($locale);
118+
foreach ($locoCatalogue->all($domain) as $key => $message) {
119+
$catalogue->set($this->retrieveKeyFromId($key, $domain), $message, $domain);
120+
}
128121

129-
foreach ($locoCatalogue->all($domain) as $key => $message) {
130-
$catalogue->set($this->retrieveKeyFromId($key, $domain), $message, $domain);
122+
$translatorBag->addCatalogue($catalogue);
131123
}
132-
133-
$translatorBag->addCatalogue($catalogue);
134124
}
135125

136126
return $translatorBag;

0 commit comments

Comments
 (0)
0