Skip to content

Commit c231959

Browse files
committed
Merge branch '6.3' into 6.4
* 6.3: [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 6fe72ad + 5a2ebb7 commit c231959

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
@@ -73,6 +73,7 @@ public function getArguments(Request $request, callable $controller, \Reflection
7373

7474
$argumentValueResolvers = [
7575
$this->namedResolvers->get($resolverName),
76+
new RequestAttributeValueResolver(),
7677
new DefaultValueResolver(),
7778
];
7879
}

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
@@ -22,6 +22,8 @@
2222
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver;
2323
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver;
2424
use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
25+
use Symfony\Component\HttpKernel\Controller\ValueResolverInterface;
26+
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
2527
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory;
2628
use Symfony\Component\HttpKernel\Exception\ResolverNotFoundException;
2729
use Symfony\Component\HttpKernel\Tests\Fixtures\Controller\ExtendingRequest;
@@ -298,24 +300,39 @@ public function testTargetedResolver()
298300

299301
public function testTargetedResolverWithDefaultValue()
300302
{
301-
$resolver = self::getResolver([], [RequestAttributeValueResolver::class => new RequestAttributeValueResolver()]);
303+
$resolver = self::getResolver([], [TestEntityValueResolver::class => new TestEntityValueResolver()]);
302304

303305
$request = Request::create('/');
304306
$controller = (new ArgumentResolverTestController())->controllerTargetingResolverWithDefaultValue(...);
305307

306-
$this->assertSame([2], $resolver->getArguments($request, $controller));
308+
/** @var Post[] $arguments */
309+
$arguments = $resolver->getArguments($request, $controller);
310+
311+
$this->assertCount(1, $arguments);
312+
$this->assertSame('Default', $arguments[0]->title);
307313
}
308314

309315
public function testTargetedResolverWithNullableValue()
310316
{
311-
$resolver = self::getResolver([], [RequestAttributeValueResolver::class => new RequestAttributeValueResolver()]);
317+
$resolver = self::getResolver([], [TestEntityValueResolver::class => new TestEntityValueResolver()]);
312318

313319
$request = Request::create('/');
314320
$controller = (new ArgumentResolverTestController())->controllerTargetingResolverWithNullableValue(...);
315321

316322
$this->assertSame([null], $resolver->getArguments($request, $controller));
317323
}
318324

325+
public function testTargetedResolverWithRequestAttributeValue()
326+
{
327+
$resolver = self::getResolver([], [TestEntityValueResolver::class => new TestEntityValueResolver()]);
328+
329+
$request = Request::create('/');
330+
$request->attributes->set('foo', $object = new Post('Random '.time()));
331+
$controller = $this->controllerTargetingResolverWithTestEntity(...);
332+
333+
$this->assertSame([$object], $resolver->getArguments($request, $controller));
334+
}
335+
319336
public function testDisabledResolver()
320337
{
321338
$resolver = self::getResolver(namedResolvers: []);
@@ -396,11 +413,15 @@ public function controllerTargetingResolver(#[ValueResolver(DefaultValueResolver
396413
{
397414
}
398415

399-
public function controllerTargetingResolverWithDefaultValue(#[ValueResolver(RequestAttributeValueResolver::class)] int $foo = 2)
416+
public function controllerTargetingResolverWithDefaultValue(#[ValueResolver(TestEntityValueResolver::class)] Post $foo = new Post('Default'))
417+
{
418+
}
419+
420+
public function controllerTargetingResolverWithNullableValue(#[ValueResolver(TestEntityValueResolver::class)] ?Post $foo)
400421
{
401422
}
402423

403-
public function controllerTargetingResolverWithNullableValue(#[ValueResolver(RequestAttributeValueResolver::class)] ?int $foo)
424+
public function controllerTargetingResolverWithTestEntity(#[ValueResolver(TestEntityValueResolver::class)] Post $foo)
404425
{
405426
}
406427

@@ -425,3 +446,21 @@ public function controllerTargetingUnknownResolver(
425446
function controller_function($foo, $foobar)
426447
{
427448
}
449+
450+
class TestEntityValueResolver implements ValueResolverInterface
451+
{
452+
public function resolve(Request $request, ArgumentMetadata $argument): iterable
453+
{
454+
return Post::class === $argument->getType() && $request->request->has('title')
455+
? [new Post($request->request->get('title'))]
456+
: [];
457+
}
458+
}
459+
460+
class Post
461+
{
462+
public function __construct(
463+
public readonly string $title,
464+
) {
465+
}
466+
}

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)