Skip to content

Commit ffcd659

Browse files
Merge branch '5.0' into 5.1
* 5.0: Parse and render anonymous classes correctly on php 8 Enable APCu for the php 8 build. [Process] Fix failing test on php 8. [HttpKernel] fix test Make PHP 8 green on Travis Revert "[Cache] allow DBAL v3" [PropertyAccessor] Added missing property path on php 8. Don't execute tests with DBAL 2.x on php 8.
2 parents 23e2869 + e8d6287 commit ffcd659

File tree

5 files changed

+31
-11
lines changed

5 files changed

+31
-11
lines changed

Kernel.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,7 @@ public function getBundles()
223223
public function getBundle(string $name)
224224
{
225225
if (!isset($this->bundles[$name])) {
226-
$class = get_debug_type($this);
227-
228-
throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "%s.php" file?', $name, $class));
226+
throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the "registerBundles()" method of your "%s.php" file?', $name, get_debug_type($this)));
229227
}
230228

231229
return $this->bundles[$name];
@@ -400,6 +398,7 @@ protected function getContainerClass()
400398
$class = static::class;
401399
$class = false !== strpos($class, "@anonymous\0") ? get_parent_class($class).str_replace('.', '_', ContainerBuilder::hash($class)) : $class;
402400
$class = str_replace('\\', '_', $class).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container';
401+
403402
if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $class)) {
404403
throw new \InvalidArgumentException(sprintf('The environment "%s" contains invalid characters, it can only contain characters allowed in PHP class names.', $this->environment));
405404
}

Tests/Controller/ArgumentResolverTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,19 +204,19 @@ public function testGetNullableArguments()
204204
$request = Request::create('/');
205205
$request->attributes->set('foo', 'foo');
206206
$request->attributes->set('bar', new \stdClass());
207-
$request->attributes->set('mandatory', 'mandatory');
207+
$request->attributes->set('last', 'last');
208208
$controller = [new NullableController(), 'action'];
209209

210-
$this->assertEquals(['foo', new \stdClass(), 'value', 'mandatory'], self::$resolver->getArguments($request, $controller));
210+
$this->assertEquals(['foo', new \stdClass(), 'value', 'last'], self::$resolver->getArguments($request, $controller));
211211
}
212212

213213
public function testGetNullableArgumentsWithDefaults()
214214
{
215215
$request = Request::create('/');
216-
$request->attributes->set('mandatory', 'mandatory');
216+
$request->attributes->set('last', 'last');
217217
$controller = [new NullableController(), 'action'];
218218

219-
$this->assertEquals([null, null, 'value', 'mandatory'], self::$resolver->getArguments($request, $controller));
219+
$this->assertEquals([null, null, 'value', 'last'], self::$resolver->getArguments($request, $controller));
220220
}
221221

222222
public function testGetSessionArguments()

Tests/ControllerMetadata/ArgumentMetadataFactoryTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function testSignature5()
8080

8181
$this->assertEquals([
8282
new ArgumentMetadata('foo', 'array', false, true, null, true),
83-
new ArgumentMetadata('bar', null, false, false, null),
83+
new ArgumentMetadata('bar', null, false, true, null, true),
8484
], $arguments);
8585
}
8686

@@ -113,7 +113,7 @@ public function testNullableTypesSignature()
113113
new ArgumentMetadata('foo', 'string', false, false, null, true),
114114
new ArgumentMetadata('bar', \stdClass::class, false, false, null, true),
115115
new ArgumentMetadata('baz', 'string', false, true, 'value', true),
116-
new ArgumentMetadata('mandatory', null, false, false, null, true),
116+
new ArgumentMetadata('last', 'string', false, true, '', false),
117117
], $arguments);
118118
}
119119

@@ -133,7 +133,7 @@ private function signature4($foo = 'default', $bar = 500, $baz = [])
133133
{
134134
}
135135

136-
private function signature5(array $foo = null, $bar)
136+
private function signature5(array $foo = null, $bar = null)
137137
{
138138
}
139139
}

Tests/Fixtures/Controller/NullableController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
class NullableController
1515
{
16-
public function action(?string $foo, ?\stdClass $bar, ?string $baz = 'value', $mandatory)
16+
public function action(?string $foo, ?\stdClass $bar, ?string $baz = 'value', string $last = '')
1717
{
1818
}
1919
}

Tests/KernelTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,27 @@ public function testKernelStartTimeIsResetWhileBootingAlreadyBootedKernel()
536536
$this->assertGreaterThan($preReBoot, $kernel->getStartTime());
537537
}
538538

539+
public function testAnonymousKernelGeneratesValidContainerClass(): void
540+
{
541+
$kernel = new class('test', true) extends Kernel {
542+
public function registerBundles(): iterable
543+
{
544+
return [];
545+
}
546+
547+
public function registerContainerConfiguration(LoaderInterface $loader): void
548+
{
549+
}
550+
551+
public function getContainerClass(): string
552+
{
553+
return parent::getContainerClass();
554+
}
555+
};
556+
557+
$this->assertRegExp('/^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*TestDebugContainer$/', $kernel->getContainerClass());
558+
}
559+
539560
/**
540561
* Returns a mock for the BundleInterface.
541562
*/

0 commit comments

Comments
 (0)