Skip to content

Commit 1938b8c

Browse files
committed
Convert switch cases to match expression
1 parent 1b71f98 commit 1938b8c

File tree

2 files changed

+24
-63
lines changed

2 files changed

+24
-63
lines changed

Console/Descriptor/Descriptor.php

Lines changed: 16 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -46,49 +46,22 @@ public function describe(OutputInterface $output, mixed $object, array $options
4646
(new AnalyzeServiceReferencesPass(false, false))->process($object);
4747
}
4848

49-
switch (true) {
50-
case $object instanceof RouteCollection:
51-
$this->describeRouteCollection($object, $options);
52-
break;
53-
case $object instanceof Route:
54-
$this->describeRoute($object, $options);
55-
break;
56-
case $object instanceof ParameterBag:
57-
$this->describeContainerParameters($object, $options);
58-
break;
59-
case $object instanceof ContainerBuilder && !empty($options['env-vars']):
60-
$this->describeContainerEnvVars($this->getContainerEnvVars($object), $options);
61-
break;
62-
case $object instanceof ContainerBuilder && isset($options['group_by']) && 'tags' === $options['group_by']:
63-
$this->describeContainerTags($object, $options);
64-
break;
65-
case $object instanceof ContainerBuilder && isset($options['id']):
66-
$this->describeContainerService($this->resolveServiceDefinition($object, $options['id']), $options, $object);
67-
break;
68-
case $object instanceof ContainerBuilder && isset($options['parameter']):
69-
$this->describeContainerParameter($object->resolveEnvPlaceholders($object->getParameter($options['parameter'])), $options);
70-
break;
71-
case $object instanceof ContainerBuilder && isset($options['deprecations']):
72-
$this->describeContainerDeprecations($object, $options);
73-
break;
74-
case $object instanceof ContainerBuilder:
75-
$this->describeContainerServices($object, $options);
76-
break;
77-
case $object instanceof Definition:
78-
$this->describeContainerDefinition($object, $options);
79-
break;
80-
case $object instanceof Alias:
81-
$this->describeContainerAlias($object, $options);
82-
break;
83-
case $object instanceof EventDispatcherInterface:
84-
$this->describeEventDispatcherListeners($object, $options);
85-
break;
86-
case \is_callable($object):
87-
$this->describeCallable($object, $options);
88-
break;
89-
default:
90-
throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object)));
91-
}
49+
match (true) {
50+
$object instanceof RouteCollection => $this->describeRouteCollection($object, $options),
51+
$object instanceof Route => $this->describeRoute($object, $options),
52+
$object instanceof ParameterBag => $this->describeContainerParameters($object, $options),
53+
$object instanceof ContainerBuilder && !empty($options['env-vars']) => $this->describeContainerEnvVars($this->getContainerEnvVars($object), $options),
54+
$object instanceof ContainerBuilder && isset($options['group_by']) && 'tags' === $options['group_by'] => $this->describeContainerTags($object, $options),
55+
$object instanceof ContainerBuilder && isset($options['id']) => $this->describeContainerService($this->resolveServiceDefinition($object, $options['id']), $options, $object),
56+
$object instanceof ContainerBuilder && isset($options['parameter']) => $this->describeContainerParameter($object->resolveEnvPlaceholders($object->getParameter($options['parameter'])), $options),
57+
$object instanceof ContainerBuilder && isset($options['deprecations']) => $this->describeContainerDeprecations($object, $options),
58+
$object instanceof ContainerBuilder => $this->describeContainerServices($object, $options),
59+
$object instanceof Definition => $this->describeContainerDefinition($object, $options),
60+
$object instanceof Alias => $this->describeContainerAlias($object, $options),
61+
$object instanceof EventDispatcherInterface => $this->describeEventDispatcherListeners($object, $options),
62+
\is_callable($object) => $this->describeCallable($object, $options),
63+
default => throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object))),
64+
};
9265

9366
if ($object instanceof ContainerBuilder) {
9467
$object->getCompiler()->getServiceReferenceGraph()->clear();

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,26 +2268,14 @@ private function assertCachePoolServiceDefinitionIsCreated(ContainerBuilder $con
22682268
$parentDefinition = $container->findDefinition($parentId);
22692269
} while ($parentDefinition instanceof ChildDefinition);
22702270

2271-
switch ($adapter) {
2272-
case 'cache.adapter.apcu':
2273-
$this->assertSame(ApcuAdapter::class, $parentDefinition->getClass());
2274-
break;
2275-
case 'cache.app':
2276-
case 'cache.adapter.filesystem':
2277-
$this->assertSame(FilesystemAdapter::class, $parentDefinition->getClass());
2278-
break;
2279-
case 'cache.adapter.psr6':
2280-
$this->assertSame(ProxyAdapter::class, $parentDefinition->getClass());
2281-
break;
2282-
case 'cache.adapter.redis':
2283-
$this->assertSame(RedisAdapter::class, $parentDefinition->getClass());
2284-
break;
2285-
case 'cache.adapter.array':
2286-
$this->assertSame(ArrayAdapter::class, $parentDefinition->getClass());
2287-
break;
2288-
default:
2289-
$this->fail('Unresolved adapter: '.$adapter);
2290-
}
2271+
match ($adapter) {
2272+
'cache.adapter.apcu' => $this->assertSame(ApcuAdapter::class, $parentDefinition->getClass()),
2273+
'cache.app', 'cache.adapter.filesystem' => $this->assertSame(FilesystemAdapter::class, $parentDefinition->getClass()),
2274+
'cache.adapter.psr6' => $this->assertSame(ProxyAdapter::class, $parentDefinition->getClass()),
2275+
'cache.adapter.redis' => $this->assertSame(RedisAdapter::class, $parentDefinition->getClass()),
2276+
'cache.adapter.array' => $this->assertSame(ArrayAdapter::class, $parentDefinition->getClass()),
2277+
default => $this->fail('Unresolved adapter: '.$adapter),
2278+
};
22912279
}
22922280
}
22932281

0 commit comments

Comments
 (0)