Skip to content

Commit 65910c4

Browse files
committed
Merge branch '6.4' into 7.0
* 6.4: [HttpKernel] Move @internal from AbstractSessionListener class to its methods and properties [Validator] Add missing translation for Greek (el) Add missing ID translations Add missing translations for Vietnamese (vi) [Validator] Add missing translations for Japanese. [Validator] Add missing translation for Russia (ru) symfony#53041 [Validator] add missing Azerbaijani translation Add missing FR translation Add missing spanish translation [Validator] Update Hungarian translations [Validator] add missing Turkish translation and correct grammar Add missing romanian translation Add missing translation for Ukrainian (uk) symfony#53050 sv_SE translation trans-unit id 110 [Validator] Add missing Croation translation Add missing translation into validators.pl.xlf [Validator] add missing lv translation [Validator] Added missing dutch translation [HttpKernel] Fix request attribute value ignored with pinned resolvers
2 parents ecaefaa + c231959 commit 65910c4

20 files changed

+162
-8
lines changed

src/Symfony/Component/HttpKernel/Controller/ArgumentResolver.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public function getArguments(Request $request, callable $controller, \Reflection
7272

7373
$argumentValueResolvers = [
7474
$this->namedResolvers->get($resolverName),
75+
new RequestAttributeValueResolver(),
7576
new DefaultValueResolver(),
7677
];
7778
}

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

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,28 +35,36 @@
3535
*
3636
* @author Johannes M. Schmitt <[email protected]>
3737
* @author Tobias Schultze <http://tobion.de>
38-
*
39-
* @internal
4038
*/
4139
abstract class AbstractSessionListener implements EventSubscriberInterface, ResetInterface
4240
{
4341
public const NO_AUTO_CACHE_CONTROL_HEADER = 'Symfony-Session-NoAutoCacheControl';
4442

43+
/**
44+
* @internal
45+
*/
4546
protected ?ContainerInterface $container;
47+
4648
private bool $debug;
4749

4850
/**
4951
* @var array<string, mixed>
5052
*/
5153
private array $sessionOptions;
5254

55+
/**
56+
* @internal
57+
*/
5358
public function __construct(ContainerInterface $container = null, bool $debug = false, array $sessionOptions = [])
5459
{
5560
$this->container = $container;
5661
$this->debug = $debug;
5762
$this->sessionOptions = $sessionOptions;
5863
}
5964

65+
/**
66+
* @internal
67+
*/
6068
public function onKernelRequest(RequestEvent $event): void
6169
{
6270
if (!$event->isMainRequest()) {
@@ -90,6 +98,9 @@ public function onKernelRequest(RequestEvent $event): void
9098
}
9199
}
92100

101+
/**
102+
* @internal
103+
*/
93104
public function onKernelResponse(ResponseEvent $event): void
94105
{
95106
if (!$event->isMainRequest() || (!$this->container->has('initialized_session') && !$event->getRequest()->hasSession())) {
@@ -218,6 +229,9 @@ public function onKernelResponse(ResponseEvent $event): void
218229
}
219230
}
220231

232+
/**
233+
* @internal
234+
*/
221235
public function onSessionUsage(): void
222236
{
223237
if (!$this->debug) {
@@ -253,6 +267,9 @@ public function onSessionUsage(): void
253267
throw new UnexpectedSessionUsageException('Session was used while the request was declared stateless.');
254268
}
255269

270+
/**
271+
* @internal
272+
*/
256273
public static function getSubscribedEvents(): array
257274
{
258275
return [
@@ -262,6 +279,9 @@ public static function getSubscribedEvents(): array
262279
];
263280
}
264281

282+
/**
283+
* @internal
284+
*/
265285
public function reset(): void
266286
{
267287
if (\PHP_SESSION_ACTIVE === session_status()) {
@@ -278,6 +298,8 @@ public function reset(): void
278298

279299
/**
280300
* Gets the session object.
301+
*
302+
* @internal
281303
*/
282304
abstract protected function getSession(): ?SessionInterface;
283305

src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolverTest.php

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
2222
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver;
2323
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver;
24+
use Symfony\Component\HttpKernel\Controller\ValueResolverInterface;
25+
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
2426
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory;
2527
use Symfony\Component\HttpKernel\Exception\ResolverNotFoundException;
2628
use Symfony\Component\HttpKernel\Tests\Fixtures\Controller\ExtendingRequest;
@@ -278,24 +280,39 @@ public function testTargetedResolver()
278280

279281
public function testTargetedResolverWithDefaultValue()
280282
{
281-
$resolver = self::getResolver([], [RequestAttributeValueResolver::class => new RequestAttributeValueResolver()]);
283+
$resolver = self::getResolver([], [TestEntityValueResolver::class => new TestEntityValueResolver()]);
282284

283285
$request = Request::create('/');
284286
$controller = (new ArgumentResolverTestController())->controllerTargetingResolverWithDefaultValue(...);
285287

286-
$this->assertSame([2], $resolver->getArguments($request, $controller));
288+
/** @var Post[] $arguments */
289+
$arguments = $resolver->getArguments($request, $controller);
290+
291+
$this->assertCount(1, $arguments);
292+
$this->assertSame('Default', $arguments[0]->title);
287293
}
288294

289295
public function testTargetedResolverWithNullableValue()
290296
{
291-
$resolver = self::getResolver([], [RequestAttributeValueResolver::class => new RequestAttributeValueResolver()]);
297+
$resolver = self::getResolver([], [TestEntityValueResolver::class => new TestEntityValueResolver()]);
292298

293299
$request = Request::create('/');
294300
$controller = (new ArgumentResolverTestController())->controllerTargetingResolverWithNullableValue(...);
295301

296302
$this->assertSame([null], $resolver->getArguments($request, $controller));
297303
}
298304

305+
public function testTargetedResolverWithRequestAttributeValue()
306+
{
307+
$resolver = self::getResolver([], [TestEntityValueResolver::class => new TestEntityValueResolver()]);
308+
309+
$request = Request::create('/');
310+
$request->attributes->set('foo', $object = new Post('Random '.time()));
311+
$controller = $this->controllerTargetingResolverWithTestEntity(...);
312+
313+
$this->assertSame([$object], $resolver->getArguments($request, $controller));
314+
}
315+
299316
public function testDisabledResolver()
300317
{
301318
$resolver = self::getResolver(namedResolvers: []);
@@ -376,11 +393,15 @@ public function controllerTargetingResolver(#[ValueResolver(DefaultValueResolver
376393
{
377394
}
378395

379-
public function controllerTargetingResolverWithDefaultValue(#[ValueResolver(RequestAttributeValueResolver::class)] int $foo = 2)
396+
public function controllerTargetingResolverWithDefaultValue(#[ValueResolver(TestEntityValueResolver::class)] Post $foo = new Post('Default'))
397+
{
398+
}
399+
400+
public function controllerTargetingResolverWithNullableValue(#[ValueResolver(TestEntityValueResolver::class)] ?Post $foo)
380401
{
381402
}
382403

383-
public function controllerTargetingResolverWithNullableValue(#[ValueResolver(RequestAttributeValueResolver::class)] ?int $foo)
404+
public function controllerTargetingResolverWithTestEntity(#[ValueResolver(TestEntityValueResolver::class)] Post $foo)
384405
{
385406
}
386407

@@ -405,3 +426,21 @@ public function controllerTargetingUnknownResolver(
405426
function controller_function($foo, $foobar)
406427
{
407428
}
429+
430+
class TestEntityValueResolver implements ValueResolverInterface
431+
{
432+
public function resolve(Request $request, ArgumentMetadata $argument): iterable
433+
{
434+
return Post::class === $argument->getType() && $request->request->has('title')
435+
? [new Post($request->request->get('title'))]
436+
: [];
437+
}
438+
}
439+
440+
class Post
441+
{
442+
public function __construct(
443+
public readonly string $title,
444+
) {
445+
}
446+
}

src/Symfony/Component/Validator/Resources/translations/validators.az.xlf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,34 @@
402402
<source>The value of the netmask should be between {{ min }} and {{ max }}.</source>
403403
<target>Şəbəkə maskasının dəyəri {{ min }} və {{ max }} arasında olmalıdır.</target>
404404
</trans-unit>
405+
<trans-unit id="104">
406+
<source>The filename is too long. It should have {{ filename_max_length }} character or less.|The filename is too long. It should have {{ filename_max_length }} characters or less.</source>
407+
<target>Fayl adı çox uzundur. {{ filename_max_length }} və ya daha az simvol olmalıdır.</target>
408+
</trans-unit>
409+
<trans-unit id="105">
410+
<source>The password strength is too low. Please use a stronger password.</source>
411+
<target>Parolun gücü çox zəifdir. Zəhmət olmasa, daha güclü bir parol istifadə edin.</target>
412+
</trans-unit>
413+
<trans-unit id="106">
414+
<source>This value contains characters that are not allowed by the current restriction-level.</source>
415+
<target>Bu dəyərdə cari məhdudiyyət səviyyəsi tərəfindən icazə verilməyən simvollar var.</target>
416+
</trans-unit>
417+
<trans-unit id="107">
418+
<source>Using invisible characters is not allowed.</source>
419+
<target>Görünməz simvolların istifadəsinə icazə verilmir.</target>
420+
</trans-unit>
421+
<trans-unit id="108">
422+
<source>Mixing numbers from different scripts is not allowed.</source>
423+
<target>Fərqli skriptlərdən nömrələrin qarışdırılmasına icazə verilmir.</target>
424+
</trans-unit>
425+
<trans-unit id="109">
426+
<source>Using hidden overlay characters is not allowed.</source>
427+
<target>Gizli örtülü simvolların istifadəsinə icazə verilmir.</target>
428+
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>Faylın uzantısı yanlışdır ({{ extension }}). İcazə verilən uzantılar {{ extensions }}.</target>
432+
</trans-unit>
405433
</body>
406434
</file>
407435
</xliff>

src/Symfony/Component/Validator/Resources/translations/validators.el.xlf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@
426426
<source>Using hidden overlay characters is not allowed.</source>
427427
<target>Δεν επιτρέπεται η χρήση κρυφών χαρακτήρων επικάλυψης.</target>
428428
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>Η επέκταση του αρχείου δεν είναι έγκυρη ({{ extension }}). Οι επιτρεπτόμενες επεκτάσεις είναι {{ extensions }}.</target>
432+
</trans-unit>
429433
</body>
430434
</file>
431435
</xliff>

src/Symfony/Component/Validator/Resources/translations/validators.es.xlf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@
426426
<source>Using hidden overlay characters is not allowed.</source>
427427
<target>No está permitido el uso de caracteres superpuestos ocultos.</target>
428428
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>La extensión del archivo no es válida ({{ extension }}). Las extensiones permitidas son {{ extensions }}.</target>
432+
</trans-unit>
429433
</body>
430434
</file>
431435
</xliff>

src/Symfony/Component/Validator/Resources/translations/validators.fr.xlf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@
426426
<source>Using hidden overlay characters is not allowed.</source>
427427
<target>Utiliser des caractères de superposition cachés n'est pas autorisé.</target>
428428
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>L'extension du fichier est invalide ({{ extension }}). Les extensions autorisées sont {{ extensions }}.</target>
432+
</trans-unit>
429433
</body>
430434
</file>
431435
</xliff>

src/Symfony/Component/Validator/Resources/translations/validators.hr.xlf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@
426426
<source>Using hidden overlay characters is not allowed.</source>
427427
<target>Korištenje skrivenih preklapajućih znakova nije dopušteno.</target>
428428
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>Ekstenzija datoteke nije valjana ({{ extension }}). Dozvoljene ekstenzije su {{ extensions }}.</target>
432+
</trans-unit>
429433
</body>
430434
</file>
431435
</xliff>

src/Symfony/Component/Validator/Resources/translations/validators.hu.xlf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@
426426
<source>Using hidden overlay characters is not allowed.</source>
427427
<target>Rejtett módosító karakterek használata nem megengedett.</target>
428428
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>A fájl kiterjesztése érvénytelen ({{ extension }}). Engedélyezett kiterjesztések: {{ extensions }}.</target>
432+
</trans-unit>
429433
</body>
430434
</file>
431435
</xliff>

src/Symfony/Component/Validator/Resources/translations/validators.id.xlf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@
426426
<source>Using hidden overlay characters is not allowed.</source>
427427
<target>Penggunaan karakter overlay yang tersembunyi tidak diperbolehkan.</target>
428428
</trans-unit>
429+
<trans-unit id="110">
430+
<source>The extension of the file is invalid ({{ extension }}). Allowed extensions are {{ extensions }}.</source>
431+
<target>Ekstensi file tidak valid ({{ extension }}). Ekstensi yang diperbolehkan adalah {{ extensions }}.</target>
432+
</trans-unit>
429433
</body>
430434
</file>
431435
</xliff>

0 commit comments

Comments
 (0)