![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/laminas/laminas-router/ |
<?xml version="1.0" encoding="UTF-8"?> <files psalm-version="5.15.0@5c774aca4746caf3d239d9c8cadb9f882ca29352"> <file src="src/Http/Chain.php"> <InvalidReturnStatement> <code><![CDATA[new static( $options['routes'], $options['route_plugins'], $options['prototypes'] )]]></code> </InvalidReturnStatement> <InvalidReturnType> <code>Part</code> </InvalidReturnType> <MixedArgument> <code><![CDATA[$options['child_routes']]]></code> <code><![CDATA[$options['prototypes']]]></code> <code><![CDATA[$options['route_plugins']]]></code> <code><![CDATA[$options['routes']]]></code> <code><![CDATA[$uri->getPath()]]></code> </MixedArgument> <MixedAssignment> <code>$hasChild</code> <code>$uri</code> </MixedAssignment> <MixedMethodCall> <code>getPath</code> </MixedMethodCall> <MixedOperand> <code><![CDATA[$route->assemble($params, $chainOptions)]]></code> </MixedOperand> <PossiblyNullPropertyAssignmentValue> <code>$prototypes</code> <code>null</code> <code>null</code> </PossiblyNullPropertyAssignmentValue> <PropertyNotSetInConstructor> <code>Chain</code> <code>Chain</code> </PropertyNotSetInConstructor> <RedundantConditionGivenDocblockType> <code><![CDATA[$this->chainRoutes !== null]]></code> <code><![CDATA[$this->chainRoutes !== null]]></code> </RedundantConditionGivenDocblockType> <TooManyArguments> <code>match</code> </TooManyArguments> <UnsafeInstantiation> <code><![CDATA[new static( $options['routes'], $options['route_plugins'], $options['prototypes'] )]]></code> </UnsafeInstantiation> </file> <file src="src/Http/Hostname.php"> <ArgumentTypeCoercion> <code>$part[1]</code> <code>$part[1]</code> </ArgumentTypeCoercion> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <InvalidPropertyAssignmentValue> <code><![CDATA[$this->assembledParams]]></code> </InvalidPropertyAssignmentValue> <MixedArgument> <code>$levelParts[$level]</code> <code><![CDATA[$options['constraints']]]></code> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['route']]]></code> </MixedArgument> <MixedArgumentTypeCoercion> <code><![CDATA[array_merge($this->defaults, $params)]]></code> </MixedArgumentTypeCoercion> <MixedArrayAccess> <code>$levelParts[$level][count($levelParts[$level]) - 1]</code> <code>$levelParts[$level][count($levelParts[$level]) - 1][1]</code> </MixedArrayAccess> <MixedArrayAssignment> <code>$levelParts[$level][]</code> <code>$levelParts[$level][]</code> <code>$levelParts[$level][]</code> </MixedArrayAssignment> <MixedArrayOffset> <code>$params[$name]</code> </MixedArrayOffset> <MixedAssignment> <code>$levelParts[$level + 1]</code> <code>$name</code> </MixedAssignment> <MixedInferredReturnType> <code>Parts</code> </MixedInferredReturnType> <MixedMethodCall> <code>setHost</code> </MixedMethodCall> <MixedOperand> <code>$constraints[$part[1]]</code> </MixedOperand> <MixedReturnStatement> <code>$parts</code> </MixedReturnStatement> <PossiblyInvalidArgument> <code>$part[1]</code> <code>$part[1]</code> </PossiblyInvalidArgument> <PossiblyInvalidArrayOffset> <code>$constraints[$part[1]]</code> <code>$levelParts[$level][count($levelParts[$level]) - 1]</code> <code>$mergedParams[$part[1]]</code> <code>$mergedParams[$part[1]]</code> <code><![CDATA[$this->defaults[$part[1]]]]></code> </PossiblyInvalidArrayOffset> <PossiblyInvalidCast> <code>$part[1]</code> </PossiblyInvalidCast> <PossiblyInvalidOperand> <code>$part[1]</code> </PossiblyInvalidOperand> <PossiblyUndefinedArrayOffset> <code>$part[2]</code> </PossiblyUndefinedArrayOffset> <UnsafeInstantiation> <code><![CDATA[new static($options['route'], $options['constraints'], $options['defaults'])]]></code> </UnsafeInstantiation> <UnsupportedReferenceUsage> <code><![CDATA[$levelParts[$level + 1] = &$levelParts[$level][count($levelParts[$level]) - 1][1]]]></code> </UnsupportedReferenceUsage> </file> <file src="src/Http/HttpRouterFactory.php"> <LessSpecificReturnStatement> <code><![CDATA[$this->createRouter($class, $config, $container)]]></code> </LessSpecificReturnStatement> <MixedArgument> <code>$config</code> </MixedArgument> <MixedArrayAccess> <code><![CDATA[$config['router']]]></code> </MixedArrayAccess> <MixedAssignment> <code>$config</code> <code>$config</code> </MixedAssignment> <MoreSpecificReturnType> <code>RouteStackInterface</code> </MoreSpecificReturnType> </file> <file src="src/Http/Literal.php"> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <MixedArgument> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['route']]]></code> <code>$path</code> </MixedArgument> <MixedAssignment> <code>$path</code> <code>$uri</code> </MixedAssignment> <MixedMethodCall> <code>getPath</code> </MixedMethodCall> <UnsafeInstantiation> <code><![CDATA[new static($options['route'], $options['defaults'])]]></code> </UnsafeInstantiation> </file> <file src="src/Http/Method.php"> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <MixedArgument> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['verb']]]></code> <code><![CDATA[$request->getMethod()]]></code> </MixedArgument> <UnsafeInstantiation> <code><![CDATA[new static($options['verb'], $options['defaults'])]]></code> </UnsafeInstantiation> </file> <file src="src/Http/Part.php"> <MixedArgument> <code><![CDATA[$options['child_routes']]]></code> <code><![CDATA[$options['may_terminate']]]></code> <code><![CDATA[$options['prototypes']]]></code> <code><![CDATA[$options['route']]]></code> <code><![CDATA[$options['route_plugins']]]></code> <code><![CDATA[$this->childRoutes]]></code> <code><![CDATA[$this->childRoutes]]></code> <code><![CDATA[$uri->getPath()]]></code> </MixedArgument> <MixedAssignment> <code>$locale</code> <code><![CDATA[$options['locale']]]></code> <code><![CDATA[$options['locale']]]></code> <code>$path</code> <code>$uri</code> </MixedAssignment> <MixedMethodCall> <code>getPath</code> </MixedMethodCall> <MixedOperand> <code>$path</code> </MixedOperand> <PossiblyInvalidArgument> <code>$route</code> </PossiblyInvalidArgument> <PossiblyNullPropertyAssignmentValue> <code>$prototypes</code> </PossiblyNullPropertyAssignmentValue> <PropertyNotSetInConstructor> <code>Part</code> <code>Part</code> </PropertyNotSetInConstructor> <TooManyArguments> <code>match</code> <code>match</code> </TooManyArguments> <UnsafeInstantiation> <code><![CDATA[new static( $options['route'], $options['may_terminate'], $options['route_plugins'], $options['child_routes'], $options['prototypes'] )]]></code> </UnsafeInstantiation> </file> <file src="src/Http/Placeholder.php"> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <UnsafeInstantiation> <code><![CDATA[new static($options['defaults'])]]></code> </UnsafeInstantiation> </file> <file src="src/Http/Regex.php"> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <MixedArgument> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['regex']]]></code> <code><![CDATA[$options['spec']]]></code> <code>$path</code> <code>$path</code> </MixedArgument> <MixedAssignment> <code>$path</code> <code>$uri</code> <code>$value</code> </MixedAssignment> <MixedMethodCall> <code>getPath</code> </MixedMethodCall> <TypeDoesNotContainType> <code>is_int($key)</code> <code>is_numeric($key) || is_int($key)</code> </TypeDoesNotContainType> <UnsafeInstantiation> <code><![CDATA[new static($options['regex'], $options['spec'], $options['defaults'])]]></code> </UnsafeInstantiation> </file> <file src="src/Http/RouteMatch.php"> <DocblockTypeContradiction> <code><![CDATA[$this->matchedRouteName === null]]></code> </DocblockTypeContradiction> <PropertyNotSetInConstructor> <code>RouteMatch</code> </PropertyNotSetInConstructor> </file> <file src="src/Http/Scheme.php"> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <MixedArgument> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['scheme']]]></code> </MixedArgument> <MixedAssignment> <code>$scheme</code> <code>$uri</code> </MixedAssignment> <MixedMethodCall> <code>getScheme</code> <code>setScheme</code> </MixedMethodCall> <UnsafeInstantiation> <code><![CDATA[new static($options['scheme'], $options['defaults'])]]></code> </UnsafeInstantiation> </file> <file src="src/Http/Segment.php"> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <InvalidArgument> <code>$pathOffset</code> </InvalidArgument> <MixedArgument> <code>$key</code> <code>$levelParts[$level]</code> <code>$locale</code> <code><![CDATA[$options['constraints']]]></code> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['has_child'] ?? false]]></code> <code><![CDATA[$options['route']]]></code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$path</code> <code>$path</code> <code>$textDomain</code> </MixedArgument> <MixedArrayAccess> <code>$levelParts[$level][count($levelParts[$level]) - 1]</code> <code>$levelParts[$level][count($levelParts[$level]) - 1][1]</code> <code>$part[0]</code> <code>$part[0]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[2]</code> <code>$part[2]</code> </MixedArrayAccess> <MixedArrayAssignment> <code>$levelParts[$level][]</code> <code>$levelParts[$level][]</code> <code>$levelParts[$level][]</code> <code>$levelParts[$level][]</code> </MixedArrayAssignment> <MixedArrayOffset> <code>$constraints[$part[1]]</code> <code>$constraints[$part[1]]</code> <code>$mergedParams[$part[1]]</code> <code>$mergedParams[$part[1]]</code> <code>$mergedParams[$part[1]]</code> <code>$params[$name]</code> <code><![CDATA[$this->defaults[$part[1]]]]></code> <code><![CDATA[$this->defaults[$part[1]]]]></code> </MixedArrayOffset> <MixedAssignment> <code>$key</code> <code>$levelParts[$level + 1]</code> <code>$locale</code> <code>$locale</code> <code>$name</code> <code>$part</code> <code>$part</code> <code>$path</code> <code>$textDomain</code> <code>$textDomain</code> <code>$uri</code> </MixedAssignment> <MixedInferredReturnType> <code>array</code> </MixedInferredReturnType> <MixedMethodCall> <code>getPath</code> <code>translate</code> </MixedMethodCall> <MixedOperand> <code>$constraints[$part[1]]</code> <code>$key</code> <code>$part[1]</code> <code>$part[1]</code> <code>$part[2]</code> <code><![CDATA[$translator->translate($part[1], $textDomain, $locale)]]></code> </MixedOperand> <MixedReturnStatement> <code>$parts</code> </MixedReturnStatement> <PossiblyInvalidArrayOffset> <code>$levelParts[$level][count($levelParts[$level]) - 1]</code> </PossiblyInvalidArrayOffset> <PossiblyUndefinedVariable> <code>$locale</code> <code>$textDomain</code> <code>$translator</code> </PossiblyUndefinedVariable> <UnsafeInstantiation> <code><![CDATA[new static($options['route'], $options['constraints'], $options['defaults'])]]></code> </UnsafeInstantiation> <UnsupportedReferenceUsage> <code><![CDATA[$levelParts[$level + 1] = &$levelParts[$level][count($levelParts[$level]) - 1][1]]]></code> </UnsupportedReferenceUsage> </file> <file src="src/Http/TranslatorAwareTreeRouteStack.php"> <LessSpecificImplementedReturnType> <code>TreeRouteStack</code> <code>TreeRouteStack</code> <code>self</code> </LessSpecificImplementedReturnType> <PossiblyNullPropertyAssignmentValue> <code>$translator</code> </PossiblyNullPropertyAssignmentValue> <PropertyNotSetInConstructor> <code>$translator</code> <code>TranslatorAwareTreeRouteStack</code> <code>TranslatorAwareTreeRouteStack</code> </PropertyNotSetInConstructor> <RedundantConditionGivenDocblockType> <code><![CDATA[$this->translator !== null]]></code> </RedundantConditionGivenDocblockType> </file> <file src="src/Http/TreeRouteStack.php"> <DeprecatedClass> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code><![CDATA[new Config([ 'aliases' => [ 'chain' => Chain::class, 'Chain' => Chain::class, 'hostname' => Hostname::class, 'Hostname' => Hostname::class, 'hostName' => Hostname::class, 'HostName' => Hostname::class, 'literal' => Literal::class, 'Literal' => Literal::class, 'method' => Method::class, 'Method' => Method::class, 'part' => Part::class, 'Part' => Part::class, 'regex' => Regex::class, 'Regex' => Regex::class, 'scheme' => Scheme::class, 'Scheme' => Scheme::class, 'segment' => Segment::class, 'Segment' => Segment::class, 'wildcard' => Wildcard::class, 'Wildcard' => Wildcard::class, 'wildCard' => Wildcard::class, 'WildCard' => Wildcard::class, ], 'factories' => [ Chain::class => RouteInvokableFactory::class, Hostname::class => RouteInvokableFactory::class, Literal::class => RouteInvokableFactory::class, Method::class => RouteInvokableFactory::class, Part::class => RouteInvokableFactory::class, Regex::class => RouteInvokableFactory::class, Scheme::class => RouteInvokableFactory::class, Segment::class => RouteInvokableFactory::class, Wildcard::class => RouteInvokableFactory::class, // v2 normalized names 'laminasmvcrouterhttpchain' => RouteInvokableFactory::class, 'laminasmvcrouterhttphostname' => RouteInvokableFactory::class, 'laminasmvcrouterhttpliteral' => RouteInvokableFactory::class, 'laminasmvcrouterhttpmethod' => RouteInvokableFactory::class, 'laminasmvcrouterhttppart' => RouteInvokableFactory::class, 'laminasmvcrouterhttpregex' => RouteInvokableFactory::class, 'laminasmvcrouterhttpscheme' => RouteInvokableFactory::class, 'laminasmvcrouterhttpsegment' => RouteInvokableFactory::class, 'laminasmvcrouterhttpwildcard' => RouteInvokableFactory::class, ], ])]]></code> </DeprecatedClass> <DocblockTypeContradiction> <code><![CDATA[! is_array($routes) && ! $routes instanceof Traversable]]></code> <code><![CDATA[$this->baseUrl === null]]></code> <code><![CDATA[$this->requestUri === null]]></code> <code><![CDATA[$this->requestUri === null]]></code> <code><![CDATA[$this->requestUri === null]]></code> <code><![CDATA[($uri->getHost() === null || $uri->getScheme() === null) && $this->requestUri === null]]></code> <code>is_array($options)</code> <code>is_array($specs)</code> </DocblockTypeContradiction> <MixedArgument> <code>$name</code> <code><![CDATA[$options['fragment']]]></code> <code><![CDATA[$options['name']]]></code> <code><![CDATA[$options['query']]]></code> <code><![CDATA[$request->getBaseUrl()]]></code> <code>$uri</code> </MixedArgument> <MixedArgumentTypeCoercion> <code>$paramName</code> <code>$paramName</code> </MixedArgumentTypeCoercion> <MixedArrayAccess> <code><![CDATA[$chainRoutes[0]['chain_routes']]]></code> <code><![CDATA[$chainRoutes[0]['child_routes']]]></code> </MixedArrayAccess> <MixedAssignment> <code>$name</code> <code>$priority</code> <code>$route</code> <code>$route</code> <code>$uri</code> <code>$uri</code> <code>$value</code> </MixedAssignment> <MixedInferredReturnType> <code>TRoute</code> </MixedInferredReturnType> <MixedMethodCall> <code>getHost</code> <code>getHost</code> <code>getHost</code> <code>getPath</code> <code>getScheme</code> <code>getScheme</code> <code>getScheme</code> <code>isAbsolute</code> <code>isValidRelative</code> <code>normalize</code> <code>normalize</code> <code>setFragment</code> <code>setHost</code> <code>setPath</code> <code>setPath</code> <code>setQuery</code> <code>setScheme</code> <code>toString</code> <code>toString</code> </MixedMethodCall> <MixedOperand> <code><![CDATA[$route->assemble(array_merge($this->defaultParams, $params), $options)]]></code> <code><![CDATA[$route->assemble(array_merge($this->defaultParams, $params), $options)]]></code> </MixedOperand> <MixedPropertyAssignment> <code>$route</code> </MixedPropertyAssignment> <MixedReturnStatement> <code>$route</code> <code>$route</code> </MixedReturnStatement> <NoInterfaceProperties> <code><![CDATA[$route->priority]]></code> </NoInterfaceProperties> <PossiblyInvalidArgument> <code>$route</code> <code>$route</code> </PossiblyInvalidArgument> <PossiblyNullOperand> <code>$baseUrlLength</code> </PossiblyNullOperand> <PropertyNotSetInConstructor> <code>$baseUrl</code> <code>$requestUri</code> </PropertyNotSetInConstructor> <RedundantCastGivenDocblockType> <code><![CDATA[(string) $this->baseUrl]]></code> </RedundantCastGivenDocblockType> <TooManyArguments> <code>match</code> </TooManyArguments> <UndefinedMethod> <code>addPrototypes</code> </UndefinedMethod> </file> <file src="src/Http/Wildcard.php"> <ArgumentTypeCoercion> <code><![CDATA[$this->keyValueDelimiter]]></code> <code><![CDATA[$this->paramDelimiter]]></code> </ArgumentTypeCoercion> <DocblockTypeContradiction> <code>is_array($options)</code> </DocblockTypeContradiction> <MixedArgument> <code><![CDATA[$options['defaults']]]></code> <code><![CDATA[$options['key_value_delimiter']]]></code> <code><![CDATA[$options['param_delimiter']]]></code> <code>$path</code> <code>$path</code> </MixedArgument> <MixedArgumentTypeCoercion> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$path</code> <code>$uri</code> </MixedAssignment> <MixedMethodCall> <code>getPath</code> </MixedMethodCall> <UnsafeInstantiation> <code><![CDATA[new static($options['key_value_delimiter'], $options['param_delimiter'], $options['defaults'])]]></code> </UnsafeInstantiation> </file> <file src="src/RouteInvokableFactory.php"> <DeprecatedInterface> <code>RouteInvokableFactory</code> <code>RouteInvokableFactory</code> </DeprecatedInterface> <MissingReturnType> <code>setCreationOptions</code> </MissingReturnType> <ParamNameMismatch> <code>$container</code> <code>$container</code> <code>$container</code> <code>$normalizedName</code> <code>$normalizedName</code> <code>$routeName</code> <code>$routeName</code> <code>$routeName</code> </ParamNameMismatch> </file> <file src="src/RouteMatch.php"> <PropertyNotSetInConstructor> <code>$matchedRouteName</code> </PropertyNotSetInConstructor> </file> <file src="src/RoutePluginManager.php"> <ArgumentTypeCoercion> <code>$config</code> <code><![CDATA[$config['invokables']]]></code> <code><![CDATA[$config['invokables']]]></code> </ArgumentTypeCoercion> <DeprecatedInterface> <code>ContainerInterface|ConfigInterface</code> </DeprecatedInterface> <MissingReturnType> <code>validatePlugin</code> </MissingReturnType> <MixedArgument> <code><![CDATA[$config['factories']]]></code> </MixedArgument> <NonInvariantDocblockPropertyType> <code>$instanceOf</code> </NonInvariantDocblockPropertyType> </file> <file src="src/RoutePluginManagerFactory.php"> <ArgumentTypeCoercion> <code>$options</code> </ArgumentTypeCoercion> </file> <file src="src/RouterConfigTrait.php"> <MixedArgument> <code><![CDATA[$config['router_class']]]></code> </MixedArgument> <MixedAssignment> <code><![CDATA[$config['route_plugins']]]></code> <code>$routePluginManager</code> </MixedAssignment> <MixedInferredReturnType> <code>RouteInterface</code> </MixedInferredReturnType> </file> <file src="src/RouterFactory.php"> <MixedInferredReturnType> <code>RouteStackInterface</code> </MixedInferredReturnType> <MixedReturnStatement> <code><![CDATA[$container->get('HttpRouter')]]></code> </MixedReturnStatement> <ParamNameMismatch> <code>$container</code> </ParamNameMismatch> </file> <file src="src/SimpleRouteStack.php"> <DocblockTypeContradiction> <code>is_array($options)</code> <code>is_array($specs)</code> </DocblockTypeContradiction> <MixedArgument> <code>$name</code> <code><![CDATA[$options['default_params']]]></code> <code><![CDATA[$options['name']]]></code> <code><![CDATA[$options['name']]]></code> <code><![CDATA[$options['routes']]]></code> <code>$priority</code> <code>$route</code> <code>$routePluginManager</code> <code><![CDATA[$specs['options']]]></code> <code><![CDATA[$specs['type']]]></code> </MixedArgument> <MixedArgumentTypeCoercion> <code>$paramName</code> <code>$paramName</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$name</code> <code>$priority</code> <code>$route</code> <code>$route</code> <code>$routePluginManager</code> <code>$value</code> </MixedAssignment> <MixedInferredReturnType> <code>TRoute</code> </MixedInferredReturnType> <MixedPropertyAssignment> <code>$route</code> </MixedPropertyAssignment> <MixedReturnStatement> <code>$route</code> <code>$route</code> </MixedReturnStatement> <NoInterfaceProperties> <code><![CDATA[$route->priority]]></code> </NoInterfaceProperties> <PossiblyInvalidArgument> <code>$route</code> </PossiblyInvalidArgument> <PossiblyNullArgument> <code>$priority</code> </PossiblyNullArgument> <UnsafeInstantiation> <code>new static($routePluginManager)</code> </UnsafeInstantiation> </file> <file src="test/FactoryTester.php"> <MixedArgument> <code>$exceptionMessage</code> </MixedArgument> <MixedAssignment> <code>$exceptionMessage</code> </MixedAssignment> </file> <file src="test/Http/ChainTest.php"> <DeprecatedClass> <code>Wildcard::class</code> </DeprecatedClass> <MissingReturnType> <code>testAssembling</code> <code>testFactory</code> <code>testMatching</code> </MissingReturnType> <MixedArgumentTypeCoercion> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$result</code> <code>$value</code> </MixedAssignment> </file> <file src="test/Http/HostnameTest.php"> <DuplicateArrayKey> <code><![CDATA['foo' => 'bat']]></code> </DuplicateArrayKey> <MissingReturnType> <code>testAssembling</code> <code>testAssemblingWithMissingParameter</code> <code>testFactory</code> <code>testFailedHostnameSegmentMatchDoesNotEmitErrors</code> <code>testGetAssembledParams</code> <code>testMatching</code> <code>testNoMatchWithoutUriMethod</code> </MissingReturnType> <MixedArgumentTypeCoercion> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$path</code> <code>$value</code> </MixedAssignment> </file> <file src="test/Http/HttpRouterFactoryTest.php"> <MissingClosureParamType> <code>$services</code> </MissingClosureParamType> <MissingClosureReturnType> <code><![CDATA[static fn($services) => new RoutePluginManager($services)]]></code> </MissingClosureReturnType> <MixedArgument> <code>$services</code> </MixedArgument> </file> <file src="test/Http/LiteralTest.php"> <MissingReturnType> <code>testAssembling</code> <code>testEmptyLiteral</code> <code>testFactory</code> <code>testGetAssembledParams</code> <code>testMatching</code> <code>testNoMatchWithoutUriMethod</code> </MissingReturnType> <MixedAssignment> <code>$result</code> </MixedAssignment> </file> <file src="test/Http/MethodTest.php"> <MissingReturnType> <code>testFactory</code> <code>testMatching</code> <code>testNoMatchWithoutVerb</code> </MissingReturnType> </file> <file src="test/Http/PartTest.php"> <ArgumentTypeCoercion> <code>new RoutePluginManager(new ServiceManager())</code> </ArgumentTypeCoercion> <DeprecatedClass> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> <code>Wildcard::class</code> </DeprecatedClass> <DuplicateArrayKey> <code><![CDATA['simple-match' => [ self::getRouteAlternative(), '/', null, null, [ 'controller' => 'fo-fo', 'action' => 'index', ], ]]]></code> </DuplicateArrayKey> <LessSpecificReturnStatement> <code><![CDATA[new RoutePluginManager(new ServiceManager(), [ 'aliases' => [ 'literal' => Literal::class, 'Literal' => Literal::class, 'part' => Part::class, 'Part' => Part::class, 'segment' => Segment::class, 'Segment' => Segment::class, 'wildcard' => Wildcard::class, 'Wildcard' => Wildcard::class, 'wildCard' => Wildcard::class, 'WildCard' => Wildcard::class, ], 'factories' => [ Literal::class => RouteInvokableFactory::class, Part::class => RouteInvokableFactory::class, Segment::class => RouteInvokableFactory::class, Wildcard::class => RouteInvokableFactory::class, // v2 normalized names 'laminasmvcrouterhttpliteral' => RouteInvokableFactory::class, 'laminasmvcrouterhttppart' => RouteInvokableFactory::class, 'laminasmvcrouterhttpsegment' => RouteInvokableFactory::class, 'laminasmvcrouterhttpwildcard' => RouteInvokableFactory::class, ], ])]]></code> </LessSpecificReturnStatement> <MissingReturnType> <code>testAssembleNonTerminatedRoute</code> <code>testAssembling</code> <code>testBaseRouteMayNotBePartRoute</code> <code>testFactory</code> <code>testFactoryShouldAcceptTraversableChildRoutes</code> <code>testGetAssembledParams</code> <code>testMatching</code> <code>testNoMatchWithoutUriMethod</code> <code>testPartRouteMarkedAsMayTerminateButWithQueryRouteChildWillMatchChildRoute</code> <code>testPartRouteMarkedAsMayTerminateCanMatchWhenQueryStringPresent</code> </MissingReturnType> <MixedArgumentTypeCoercion> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$query</code> <code>$query</code> <code>$result</code> <code>$value</code> </MixedAssignment> <MoreSpecificReturnType> <code><![CDATA[RoutePluginManager<RouteInterface>]]></code> </MoreSpecificReturnType> <PossiblyInvalidArgument> <code>testAssembling</code> <code>testMatching</code> </PossiblyInvalidArgument> <UnusedVariable> <code>$query</code> <code>$query</code> <code>$route</code> </UnusedVariable> </file> <file src="test/Http/PlaceholderTest.php"> <MissingReturnType> <code>testAssembling</code> <code>testFactory</code> <code>testGetAssembledParams</code> <code>testMatch</code> <code>testPlaceholderDefault</code> </MissingReturnType> </file> <file src="test/Http/RegexTest.php"> <MissingReturnType> <code>testAssembling</code> <code>testEncodedDecode</code> <code>testFactory</code> <code>testGetAssembledParams</code> <code>testMatching</code> <code>testNoMatchWithoutUriMethod</code> <code>testRawDecode</code> </MissingReturnType> <MixedArgumentTypeCoercion> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$result</code> <code>$value</code> </MixedAssignment> <PossiblyNullReference> <code>getParam</code> <code>getParam</code> </PossiblyNullReference> </file> <file src="test/Http/RouteMatchTest.php"> <MissingReturnType> <code>testLengthIsMerged</code> <code>testLengthIsStored</code> <code>testMatchedRouteNameIsOverriddenOnMerge</code> <code>testMatchedRouteNameIsPrependedWhenAlreadySet</code> <code>testMatchedRouteNameIsSet</code> <code>testParamsAreStored</code> </MissingReturnType> </file> <file src="test/Http/SchemeTest.php"> <MissingReturnType> <code>testAssembling</code> <code>testFactory</code> <code>testGetAssembledParams</code> <code>testMatching</code> <code>testNoMatchWithoutUriMethod</code> <code>testNoMatchingOnDifferentScheme</code> </MissingReturnType> <MixedAssignment> <code>$path</code> </MixedAssignment> </file> <file src="test/Http/SegmentTest.php"> <ArgumentTypeCoercion> <code>$exceptionName</code> </ArgumentTypeCoercion> <InvalidArgument> <code>$offset</code> <code>$offset</code> </InvalidArgument> <MissingReturnType> <code>assemblingWithL10n</code> <code>matchingWithL10n</code> <code>testAssemblingWithExistingChild</code> <code>testAssemblingWithMissingParameterInRoot</code> <code>testEncodeCache</code> <code>testEncodedDecode</code> <code>testFactory</code> <code>testNoMatchWithoutUriMethod</code> <code>testParseExceptions</code> <code>testRawDecode</code> <code>testTranslatedAssemblingThrowsExceptionWithoutTranslator</code> <code>testTranslatedMatchingThrowsExceptionWithoutTranslator</code> </MissingReturnType> <MixedArgumentTypeCoercion> <code>$key</code> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$path</code> <code>$result</code> <code>$result</code> <code>$value</code> <code>$value</code> </MixedAssignment> <NullArgument> <code>null</code> <code>null</code> <code>null</code> </NullArgument> <PossiblyNullReference> <code>getParam</code> <code>getParam</code> </PossiblyNullReference> </file> <file src="test/Http/TestAsset/DummyRoute.php"> <UnsafeInstantiation> <code>new static()</code> </UnsafeInstantiation> </file> <file src="test/Http/TreeRouteStackTest.php"> <MissingReturnType> <code>testAddRouteAcceptsTraversable</code> <code>testAddRouteRequiresHttpSpecificRoute</code> <code>testAddRouteViaStringRequiresHttpSpecificRoute</code> <code>testAssemble</code> <code>testAssembleCanonicalUriWithGivenUri</code> <code>testAssembleCanonicalUriWithHostnameRoute</code> <code>testAssembleCanonicalUriWithHostnameRouteAndRequestUriWithoutScheme</code> <code>testAssembleCanonicalUriWithHostnameRouteWithoutScheme</code> <code>testAssembleCanonicalUriWithRequestUri</code> <code>testAssembleCanonicalUriWithoutRequestUri</code> <code>testAssembleNonExistentChildRoute</code> <code>testAssembleNonExistentRoute</code> <code>testAssembleWithEncodedPath</code> <code>testAssembleWithEncodedPathAndQueryParams</code> <code>testAssembleWithFragment</code> <code>testAssembleWithQueryParams</code> <code>testAssembleWithScheme</code> <code>testAssembleWithoutNameOption</code> <code>testBaseUrlLengthIsPassedAsOffset</code> <code>testChainRouteAssembling</code> <code>testChainRouteAssemblingWithChildrenAndSecureScheme</code> <code>testDefaultParamDoesNotOverrideParam</code> <code>testDefaultParamDoesNotOverrideParamForAssembling</code> <code>testDefaultParamIsAddedToMatch</code> <code>testDefaultParamIsUsedForAssembling</code> <code>testFactory</code> <code>testNoMatchWithoutUriMethod</code> <code>testNoOffsetIsPassedWithoutBaseUrl</code> <code>testPriorityIsPassedToPartRoute</code> <code>testPrototypeRoute</code> <code>testSetBaseUrl</code> <code>testSetBaseUrlFromFirstMatch</code> <code>testSetRequestUri</code> </MissingReturnType> <MixedAssignment> <code>$routes</code> </MixedAssignment> <MixedMethodCall> <code>get</code> </MixedMethodCall> <MixedPropertyFetch> <code><![CDATA[$routes->get('foo')->priority]]></code> </MixedPropertyFetch> <PossiblyNullReference> <code>getParam</code> <code>getParam</code> <code>getParam</code> <code>getParam</code> </PossiblyNullReference> <UnusedMethodCall> <code>setAccessible</code> </UnusedMethodCall> </file> <file src="test/Http/WildcardTest.php"> <DeprecatedClass> <code>Wildcard</code> <code>Wildcard</code> <code>Wildcard::class</code> <code><![CDATA[array<string, array{ * 0: Wildcard, * 1: string, * 2: null|int, * 3: array<string, string|int|float> * }>]]></code> <code><![CDATA[new Wildcard('-')]]></code> <code><![CDATA[new Wildcard('-')]]></code> <code><![CDATA[new Wildcard('/', '-')]]></code> <code><![CDATA[new Wildcard('/', '/', ['foo' => 'baz'])]]></code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> <code>new Wildcard()</code> </DeprecatedClass> <LessSpecificReturnStatement> <code><![CDATA[[ 'simple-match' => [ new Wildcard(), '/foo/bar/baz/bat', null, ['foo' => 'bar', 'baz' => 'bat'], ], 'empty-match' => [ new Wildcard(), '', null, [], ], 'no-match-without-leading-delimiter' => [ new Wildcard(), '/foo/foo/bar/baz/bat', 5, null, ], 'no-match-with-trailing-slash' => [ new Wildcard(), '/foo/bar/baz/bat/', null, null, ], 'match-overrides-default' => [ new Wildcard('/', '/', ['foo' => 'baz']), '/foo/bat', null, ['foo' => 'bat'], ], 'offset-skips-beginning' => [ new Wildcard(), '/bat/foo/bar', 4, ['foo' => 'bar'], ], 'non-standard-key-value-delimiter' => [ new Wildcard('-'), '/foo-bar/baz-bat', null, ['foo' => 'bar', 'baz' => 'bat'], ], 'non-standard-parameter-delimiter' => [ new Wildcard('/', '-'), '/foo/-foo/bar-baz/bat', 5, ['foo' => 'bar', 'baz' => 'bat'], ], 'empty-values-with-non-standard-key-value-delimiter-are-omitted' => [ new Wildcard('-'), '/foo', null, [], true, ], 'url-encoded-parameters-are-decoded' => [ new Wildcard(), '/foo/foo%20bar', null, ['foo' => 'foo bar'], ], 'params-contain-non-string-scalar-values' => [ new Wildcard(), '/int_param/42/float_param/4.2', null, ['int_param' => 42, 'float_param' => 4.2], ], ]]]></code> </LessSpecificReturnStatement> <MissingReturnType> <code>testAssembling</code> <code>testEncodedDecode</code> <code>testFactory</code> <code>testGetAssembledParams</code> <code>testMatching</code> <code>testNoMatchWithoutUriMethod</code> <code>testPathAssemblyShouldSkipAnyNonScalarValues</code> <code>testRawDecode</code> </MissingReturnType> <MixedArgumentTypeCoercion> <code>$key</code> </MixedArgumentTypeCoercion> <MixedAssignment> <code>$path</code> <code>$result</code> <code>$value</code> </MixedAssignment> <MoreSpecificReturnType> <code><![CDATA[array<string, array{ * 0: Wildcard, * 1: string, * 2: null|int, * 3: array<string, string|int|float> * }>]]></code> </MoreSpecificReturnType> <PossiblyNullReference> <code>getParam</code> <code>getParam</code> </PossiblyNullReference> <UndefinedClass> <code>ConnectMiddleware</code> <code>Handler</code> </UndefinedClass> </file> <file src="test/PriorityListTest.php"> <MissingReturnType> <code>testClear</code> <code>testGet</code> <code>testInsert</code> <code>testLIFOOnly</code> <code>testLIFOWithPriority</code> <code>testPriorityOnly</code> <code>testPriorityWithNegativesAndNull</code> <code>testRemove</code> <code>testRemovingNonExistentRouteDoesNotYieldError</code> </MissingReturnType> <NullArgument> <code>null</code> </NullArgument> </file> <file src="test/RouteMatchTest.php"> <MissingReturnType> <code>testGetNonExistentParamWithDefault</code> <code>testGetNonExistentParamWithoutDefault</code> <code>testGetParam</code> <code>testMatchedRouteNameIsSet</code> <code>testParamsAreStored</code> <code>testSetParam</code> </MissingReturnType> </file> <file src="test/RoutePluginManagerFactoryTest.php"> <DeprecatedMethod> <code>createService</code> </DeprecatedMethod> <MissingClosureParamType> <code>$container</code> </MissingClosureParamType> <MissingClosureReturnType> <code><![CDATA[fn($container) => $this->createMock(RouteInterface::class)]]></code> </MissingClosureReturnType> <MissingReturnType> <code>testCreateServiceReturnsAPluginManager</code> <code>testInvocationCanProvideOptionsToThePluginManager</code> <code>testInvocationReturnsAPluginManager</code> </MissingReturnType> <PossiblyInvalidArgument> <code><![CDATA[$this->container]]></code> <code><![CDATA[$this->container]]></code> </PossiblyInvalidArgument> <UnusedClosureParam> <code>$container</code> </UnusedClosureParam> </file> <file src="test/RoutePluginManagerTest.php"> <MissingReturnType> <code>testCanLoadAnyRoute</code> <code>testLoadNonExistentRoute</code> </MissingReturnType> </file> <file src="test/RouterFactoryTest.php"> <ArgumentTypeCoercion> <code><![CDATA[array_merge_recursive($this->defaultServiceConfig, [ 'services' => [ 'config' => [ 'router' => [ 'router_class' => TestAsset\Router::class, ], ], ], ])]]></code> <code><![CDATA[array_merge_recursive($this->defaultServiceConfig, [ 'services' => [ 'config' => [ 'router' => [ 'router_class' => TestAsset\Router::class, ], ], ], ])]]></code> </ArgumentTypeCoercion> <DeprecatedClass> <code><![CDATA[new Config(array_merge_recursive($this->defaultServiceConfig, [ 'services' => [ 'config' => [ 'router' => [ 'router_class' => TestAsset\Router::class, ], ], ], ]))]]></code> <code><![CDATA[new Config(array_merge_recursive($this->defaultServiceConfig, [ 'services' => [ 'config' => [ 'router' => [ 'router_class' => TestAsset\Router::class, ], ], ], ]))]]></code> </DeprecatedClass> <MissingClosureParamType> <code>$services</code> </MissingClosureParamType> <MissingClosureReturnType> <code><![CDATA[static fn($services) => new RoutePluginManager($services)]]></code> </MissingClosureReturnType> <MixedArgument> <code>$services</code> </MixedArgument> </file> <file src="test/SimpleRouteStackTest.php"> <ArgumentTypeCoercion> <code><![CDATA['Traversable']]></code> </ArgumentTypeCoercion> <DeprecatedProperty> <code><![CDATA[$route->priority]]></code> </DeprecatedProperty> <InvalidArgument> <code><![CDATA['foo']]></code> <code><![CDATA['foo']]></code> </InvalidArgument> <MissingReturnType> <code>testAddRouteAsArrayWithOptions</code> <code>testAddRouteAsArrayWithPriority</code> <code>testAddRouteAsArrayWithoutOptions</code> <code>testAddRouteAsArrayWithoutType</code> <code>testAddRouteAsTraversable</code> <code>testAddRouteWithInvalidArgument</code> <code>testAddRouteWithPriority</code> <code>testAddRoutesAsArray</code> <code>testAddRoutesAsTraversable</code> <code>testAddRoutesWithInvalidArgument</code> <code>testAssemble</code> <code>testAssembleNonExistentRoute</code> <code>testAssembleWithoutNameOption</code> <code>testDefaultParamDoesNotOverrideParam</code> <code>testDefaultParamDoesNotOverrideParamForAssembling</code> <code>testDefaultParamIsAddedToMatch</code> <code>testDefaultParamIsUsedForAssembling</code> <code>testFactory</code> <code>testGetRouteByName</code> <code>testGetRoutes</code> <code>testHasRoute</code> <code>testSetRoutePluginManager</code> <code>testSetRoutesAsArray</code> <code>testSetRoutesAsTraversable</code> <code>testSetRoutesWithInvalidArgument</code> <code>testremoveRouteAsArray</code> </MissingReturnType> <NoInterfaceProperties> <code><![CDATA[$route->priority]]></code> </NoInterfaceProperties> <PossiblyNullReference> <code>getParam</code> <code>getParam</code> <code>getParam</code> <code>getParam</code> </PossiblyNullReference> </file> <file src="test/TestAsset/DummyRoute.php"> <UnsafeInstantiation> <code>new static()</code> </UnsafeInstantiation> </file> <file src="test/TestAsset/Router.php"> <ImplementedReturnTypeMismatch> <code>RouteMatch|null</code> </ImplementedReturnTypeMismatch> <InvalidReturnType> <code>mixed</code> </InvalidReturnType> <UndefinedDocblockClass> <code>RouteMatch|null</code> </UndefinedDocblockClass> <UnsafeInstantiation> <code>new static()</code> </UnsafeInstantiation> </file> </files>