Skip to content

Commit

Permalink
Merge pull request #2960 from adriansuter/patch-phpstan
Browse files Browse the repository at this point in the history
Fix phpstan 0.12 errors
  • Loading branch information
l0gicgate committed May 6, 2020
2 parents 212c00e + 88fe329 commit 1df2f0d
Show file tree
Hide file tree
Showing 26 changed files with 143 additions and 49 deletions.
2 changes: 1 addition & 1 deletion Slim/CallableResolver.php
Expand Up @@ -133,7 +133,7 @@ private function isMiddleware($toResolve): bool
*
* @throws RuntimeException
*
* @return array [Instance, Method Name]
* @return array<object|string|null> [Instance, Method Name]
*/
private function resolveSlimNotation(string $toResolve): array
{
Expand Down
2 changes: 1 addition & 1 deletion Slim/Error/Renderers/JsonErrorRenderer.php
Expand Up @@ -45,7 +45,7 @@ public function __invoke(Throwable $exception, bool $displayErrorDetails): strin

/**
* @param Throwable $exception
* @return array
* @return array<string|int>
*/
private function formatExceptionFragment(Throwable $exception): array
{
Expand Down
8 changes: 8 additions & 0 deletions Slim/Exception/HttpBadRequestException.php
Expand Up @@ -12,8 +12,16 @@

class HttpBadRequestException extends HttpSpecializedException
{
/**
* @var int
*/
protected $code = 400;

/**
* @var string
*/
protected $message = 'Bad request.';

protected $title = '400 Bad Request';
protected $description = 'The server cannot or will not process the request due to an apparent client error.';
}
8 changes: 8 additions & 0 deletions Slim/Exception/HttpForbiddenException.php
Expand Up @@ -12,8 +12,16 @@

class HttpForbiddenException extends HttpSpecializedException
{
/**
* @var int
*/
protected $code = 403;

/**
* @var string
*/
protected $message = 'Forbidden.';

protected $title = '403 Forbidden';
protected $description = 'You are not permitted to perform the requested operation.';
}
8 changes: 8 additions & 0 deletions Slim/Exception/HttpInternalServerErrorException.php
Expand Up @@ -12,8 +12,16 @@

class HttpInternalServerErrorException extends HttpSpecializedException
{
/**
* @var int
*/
protected $code = 500;

/**
* @var string
*/
protected $message = 'Internal server error.';

protected $title = '500 Internal Server Error';
protected $description = 'Unexpected condition encountered preventing server from fulfilling request.';
}
14 changes: 11 additions & 3 deletions Slim/Exception/HttpMethodNotAllowedException.php
Expand Up @@ -15,25 +15,33 @@
class HttpMethodNotAllowedException extends HttpSpecializedException
{
/**
* @var array
* @var string[]
*/
protected $allowedMethods = [];

/**
* @var int
*/
protected $code = 405;

/**
* @var string
*/
protected $message = 'Method not allowed.';

protected $title = '405 Method Not Allowed';
protected $description = 'The request method is not supported for the requested resource.';

/**
* @return array
* @return string[]
*/
public function getAllowedMethods(): array
{
return $this->allowedMethods;
}

/**
* @param array $methods
* @param string[] $methods
* @return self
*/
public function setAllowedMethods(array $methods): HttpMethodNotAllowedException
Expand Down
8 changes: 8 additions & 0 deletions Slim/Exception/HttpNotFoundException.php
Expand Up @@ -12,8 +12,16 @@

class HttpNotFoundException extends HttpSpecializedException
{
/**
* @var int
*/
protected $code = 404;

/**
* @var string
*/
protected $message = 'Not found.';

protected $title = '404 Not Found';
protected $description = 'The requested resource could not be found. Please verify the URI and try again.';
}
8 changes: 8 additions & 0 deletions Slim/Exception/HttpNotImplementedException.php
Expand Up @@ -12,8 +12,16 @@

class HttpNotImplementedException extends HttpSpecializedException
{
/**
* @var int
*/
protected $code = 501;

/**
* @var string
*/
protected $message = 'Not implemented.';

protected $title = '501 Not Implemented';
protected $description = 'The server does not support the functionality required to fulfill the request.';
}
8 changes: 8 additions & 0 deletions Slim/Exception/HttpUnauthorizedException.php
Expand Up @@ -12,8 +12,16 @@

class HttpUnauthorizedException extends HttpSpecializedException
{
/**
* @var int
*/
protected $code = 401;

/**
* @var string
*/
protected $message = 'Unauthorized.';

protected $title = '401 Unauthorized';
protected $description = 'The request requires valid user authentication.';
}
4 changes: 2 additions & 2 deletions Slim/Handlers/ErrorHandler.php
Expand Up @@ -62,7 +62,7 @@ class ErrorHandler implements ErrorHandlerInterface
protected $logErrorRenderer = PlainTextErrorRenderer::class;

/**
* @var array
* @var array<string|callable>
*/
protected $errorRenderers = [
'application/json' => JsonErrorRenderer::class,
Expand Down Expand Up @@ -122,7 +122,7 @@ class ErrorHandler implements ErrorHandlerInterface
*/
protected $responseFactory;

/*
/**
* @var LoggerInterface
*/
protected $logger;
Expand Down
2 changes: 1 addition & 1 deletion Slim/Handlers/Strategies/RequestHandler.php
Expand Up @@ -38,7 +38,7 @@ public function __construct(bool $appendRouteArgumentsToRequestAttributes = fals
* @param callable $callable
* @param ServerRequestInterface $request
* @param ResponseInterface $response
* @param array $routeArguments
* @param array<mixed> $routeArguments
*
* @return ResponseInterface
*/
Expand Down
2 changes: 1 addition & 1 deletion Slim/Handlers/Strategies/RequestResponse.php
Expand Up @@ -26,7 +26,7 @@ class RequestResponse implements InvocationStrategyInterface
* @param callable $callable
* @param ServerRequestInterface $request
* @param ResponseInterface $response
* @param array $routeArguments
* @param array<mixed> $routeArguments
*
* @return ResponseInterface
*/
Expand Down
2 changes: 1 addition & 1 deletion Slim/Handlers/Strategies/RequestResponseArgs.php
Expand Up @@ -28,7 +28,7 @@ class RequestResponseArgs implements InvocationStrategyInterface
* @param callable $callable
* @param ServerRequestInterface $request
* @param ResponseInterface $response
* @param array $routeArguments
* @param array<mixed> $routeArguments
*
* @return ResponseInterface
*/
Expand Down
2 changes: 1 addition & 1 deletion Slim/Interfaces/DispatcherInterface.php
Expand Up @@ -27,7 +27,7 @@ public function dispatch(string $method, string $uri): RoutingResults;
* Get allowed methods for a given uri
*
* @param string $uri
* @return array
* @return string[]
*/
public function getAllowedMethods(string $uri): array;
}
2 changes: 1 addition & 1 deletion Slim/Interfaces/InvocationStrategyInterface.php
Expand Up @@ -24,7 +24,7 @@ interface InvocationStrategyInterface
* @param callable $callable The callable to invoke using the strategy.
* @param ServerRequestInterface $request The request object.
* @param ResponseInterface $response The response object.
* @param array $routeArguments The route's placeholder arguments
* @param array<mixed> $routeArguments The route's placeholder arguments
*
* @return ResponseInterface The response from the callable.
*/
Expand Down
2 changes: 1 addition & 1 deletion Slim/Interfaces/Psr17FactoryProviderInterface.php
Expand Up @@ -18,7 +18,7 @@ interface Psr17FactoryProviderInterface
public static function getFactories(): array;

/**
* @var string[]
* @param string[] $factories
*/
public static function setFactories(array $factories): void;

Expand Down
2 changes: 1 addition & 1 deletion Slim/Interfaces/RouteInterface.php
Expand Up @@ -142,7 +142,7 @@ public function addMiddleware(MiddlewareInterface $middleware): RouteInterface;
/**
* Prepare the route for use
*
* @param array $arguments
* @param string[] $arguments
* @return RouteInterface
*/
public function prepare(array $arguments): RouteInterface;
Expand Down
17 changes: 8 additions & 9 deletions Slim/Interfaces/RouteParserInterface.php
Expand Up @@ -19,10 +19,9 @@ interface RouteParserInterface
/**
* Build the path for a named route excluding the base path
*
*
* @param string $routeName Route name
* @param array $data Named argument replacement data
* @param array $queryParams Optional query string parameters
* @param string $routeName Route name
* @param string[] $data Named argument replacement data
* @param string[] $queryParams Optional query string parameters
*
* @return string
*
Expand All @@ -34,9 +33,9 @@ public function relativeUrlFor(string $routeName, array $data = [], array $query
/**
* Build the path for a named route including the base path
*
* @param string $routeName Route name
* @param array $data Named argument replacement data
* @param array $queryParams Optional query string parameters
* @param string $routeName Route name
* @param string[] $data Named argument replacement data
* @param string[] $queryParams Optional query string parameters
*
* @return string
*
Expand All @@ -50,8 +49,8 @@ public function urlFor(string $routeName, array $data = [], array $queryParams =
*
* @param UriInterface $uri
* @param string $routeName Route name
* @param array $data Named argument replacement data
* @param array $queryParams Optional query string parameters
* @param string[] $data Named argument replacement data
* @param string[] $queryParams Optional query string parameters
*
* @return string
*/
Expand Down
6 changes: 3 additions & 3 deletions Slim/Logger.php
Expand Up @@ -16,9 +16,9 @@
class Logger extends AbstractLogger
{
/**
* @param mixed $level
* @param string $message
* @param array $context
* @param mixed $level
* @param string $message
* @param array<mixed> $context
*
* @return void
*
Expand Down
2 changes: 1 addition & 1 deletion Slim/Middleware/BodyParsingMiddleware.php
Expand Up @@ -139,7 +139,7 @@ protected function registerDefaultBodyParsers(): void

/**
* @param ServerRequestInterface $request
* @return null|array|object
* @return null|array<mixed>|object
*/
protected function parseBody(ServerRequestInterface $request)
{
Expand Down
51 changes: 40 additions & 11 deletions Slim/MiddlewareDispatcher.php
Expand Up @@ -73,7 +73,7 @@ public function seedMiddlewareStack(RequestHandlerInterface $kernel): void
/**
* Invoke the middleware stack
*
* @param ServerRequestInterface $request
* @param ServerRequestInterface $request
* @return ResponseInterface
*/
public function handle(ServerRequestInterface $request): ResponseInterface
Expand Down Expand Up @@ -105,6 +105,7 @@ public function add($middleware): MiddlewareDispatcherInterface
return $this->addCallable($middleware);
}

/** @phpstan-ignore-next-line */
throw new RuntimeException(
'A middleware must be an object/class name referencing an implementation of ' .
'MiddlewareInterface or a callable with a matching signature.'
Expand All @@ -124,9 +125,15 @@ public function add($middleware): MiddlewareDispatcherInterface
public function addMiddleware(MiddlewareInterface $middleware): MiddlewareDispatcherInterface
{
$next = $this->tip;
$this->tip = new class ($middleware, $next) implements RequestHandlerInterface
{
$this->tip = new class ($middleware, $next) implements RequestHandlerInterface {
/**
* @var MiddlewareInterface
*/
private $middleware;

/**
* @var RequestHandlerInterface
*/
private $next;

public function __construct(MiddlewareInterface $middleware, RequestHandlerInterface $next)
Expand Down Expand Up @@ -162,11 +169,25 @@ public function addDeferred(string $middleware): self
$next,
$this->container,
$this->callableResolver
) implements RequestHandlerInterface
{
) implements RequestHandlerInterface {
/**
* @var string
*/
private $middleware;

/**
* @var RequestHandlerInterface
*/
private $next;

/**
* @var ContainerInterface|null
*/
private $container;

/**
* @var CallableResolverInterface|null
*/
private $callableResolver;

public function __construct(
Expand Down Expand Up @@ -236,10 +257,12 @@ public function handle(ServerRequestInterface $request): ResponseInterface
}

if (!is_callable($callable)) {
throw new RuntimeException(sprintf(
'Middleware %s is not resolvable',
$this->middleware
));
throw new RuntimeException(
sprintf(
'Middleware %s is not resolvable',
$this->middleware
)
);
}

return $callable($request, $this->next);
Expand Down Expand Up @@ -267,9 +290,15 @@ public function addCallable(callable $middleware): self
$middleware = $middleware->bindTo($this->container);
}

$this->tip = new class ($middleware, $next) implements RequestHandlerInterface
{
$this->tip = new class ($middleware, $next) implements RequestHandlerInterface {
/**
* @var callable
*/
private $middleware;

/**
* @var RequestHandlerInterface
*/
private $next;

public function __construct(callable $middleware, RequestHandlerInterface $next)
Expand Down

0 comments on commit 1df2f0d

Please sign in to comment.