Skip to content

Commit 4208ff0

Browse files
committed
Stan fixes for latest deps
1 parent 874835a commit 4208ff0

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

DependencyInjection/GraphqliteCompilerPass.php

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Symfony\Component\Cache\Psr16Cache;
1414
use TheCodingMachine\GraphQLite\Mappers\StaticClassListTypeMapper;
1515
use TheCodingMachine\GraphQLite\Mappers\StaticClassListTypeMapperFactory;
16+
use Webmozart\Assert\Assert;
1617
use function class_exists;
1718
use Doctrine\Common\Annotations\AnnotationException;
1819
use Doctrine\Common\Annotations\AnnotationReader as DoctrineAnnotationReader;
@@ -102,14 +103,19 @@ class GraphqliteCompilerPass implements CompilerPassInterface
102103
public function process(ContainerBuilder $container): void
103104
{
104105
$reader = $this->getAnnotationReader();
105-
$this->cacheDir = $container->getParameter('kernel.cache_dir');
106+
$cacheDir = $container->getParameter('kernel.cache_dir');
107+
Assert::string($cacheDir);
108+
$this->cacheDir = $cacheDir;
106109
//$inputTypeUtils = new InputTypeUtils($reader, $namingStrategy);
107110

108111
// Let's scan the whole container and tag the services that belong to the namespace we want to inspect.
109112
$controllersNamespaces = $container->getParameter('graphqlite.namespace.controllers');
113+
Assert::isIterable($controllersNamespaces);
110114
$typesNamespaces = $container->getParameter('graphqlite.namespace.types');
115+
Assert::isIterable($typesNamespaces);
111116

112117
$firewallName = $container->getParameter('graphqlite.security.firewall_name');
118+
Assert::string($firewallName);
113119
$firewallConfigServiceName = 'security.firewall.map.config.'.$firewallName;
114120

115121
// 2 seconds of TTL in environment mode. Otherwise, let's cache forever!
@@ -183,13 +189,20 @@ public function process(ContainerBuilder $container): void
183189
if ($container->getParameter('graphqlite.security.introspection') === false) {
184190
$rulesDefinition[] = $container->findDefinition(DisableIntrospection::class);
185191
}
186-
if ($container->getParameter('graphqlite.security.maximum_query_complexity')) {
187-
$complexity = (int) $container->getParameter('graphqlite.security.maximum_query_complexity');
188-
$rulesDefinition[] = $container->findDefinition(QueryComplexity::class)->setArgument(0, $complexity);
192+
if ($container->hasParameter('graphqlite.security.maximum_query_complexity')) {
193+
$complexity = $container->getParameter('graphqlite.security.maximum_query_complexity');
194+
Assert::integerish($complexity);
195+
196+
$rulesDefinition[] = $container->findDefinition(QueryComplexity::class)
197+
->setArgument(0, (int) $complexity);
189198
}
190-
if ($container->getParameter('graphqlite.security.maximum_query_depth')) {
191-
$depth = (int) $container->getParameter('graphqlite.security.maximum_query_depth');
192-
$rulesDefinition[] = $container->findDefinition(QueryDepth::class)->setArgument(0, $depth);
199+
200+
if ($container->hasParameter('graphqlite.security.maximum_query_depth')) {
201+
$depth = $container->getParameter('graphqlite.security.maximum_query_depth');
202+
Assert::integerish($depth);
203+
204+
$rulesDefinition[] = $container->findDefinition(QueryDepth::class)
205+
->setArgument(0, (int) $depth);
193206
}
194207
$serverConfigDefinition->addMethodCall('setValidationRules', [$rulesDefinition]);
195208

Types/SymfonyUserInterfaceType.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ public function getRoles(UserInterface $user): array
2323
{
2424
$roles = [];
2525
foreach ($user->getRoles() as $role) {
26-
$roles[] = $role instanceof Role ? $role->getRole() : $role;
26+
// @phpstan-ignore-next-line BC for Symfony 4
27+
if (class_exists(Role::class) && $role instanceof Role) {
28+
$role = $role->getRole();
29+
}
30+
31+
$roles[] = $role;
2732
}
2833
return $roles;
2934
}

0 commit comments

Comments
 (0)