Skip to content

Commit 66078d3

Browse files
authored
Merge pull request #1129 from rebing/mfn-misc-changes
phpstan: misc smaller improvements
2 parents 91735a9 + 4334aee commit 66078d3

File tree

9 files changed

+37
-23
lines changed

9 files changed

+37
-23
lines changed

.github/workflows/analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151

5252
- run: composer update --prefer-dist --no-progress
5353

54-
- run: composer phpstan -- --no-progress
54+
- run: composer phpstan -- --no-progress --error-format=table
5555

5656
code-style-checker:
5757
name: Code Style checker

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
}
6565
},
6666
"scripts": {
67-
"phpstan": "phpstan analyse --memory-limit=512M",
67+
"phpstan": "phpstan analyse --memory-limit=512M --error-format=raw",
6868
"phpstan-baseline": "phpstan analyse --memory-limit=512M --generate-baseline",
6969
"lint": "php-cs-fixer fix --diff --dry-run",
7070
"fix-style": "php-cs-fixer fix",

phpstan-baseline.neon

+10
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ parameters:
1010
count: 1
1111
path: src/GraphQL.php
1212

13+
-
14+
message: "#^Method Rebing\\\\GraphQL\\\\GraphQL\\:\\:getGlobalResolverMiddlewares\\(\\) should return list\\<class\\-string\\|object\\> but returns array\\.$#"
15+
count: 1
16+
path: src/GraphQL.php
17+
1318
-
1419
message: "#^Parameter \\#1 \\$config of class GraphQL\\\\Type\\\\Definition\\\\ObjectType constructor expects array\\{name\\?\\: string\\|null, description\\?\\: string\\|null, resolveField\\?\\: \\(callable\\(mixed, array\\<string, mixed\\>, mixed, GraphQL\\\\Type\\\\Definition\\\\ResolveInfo\\)\\: mixed\\)\\|null, fields\\: \\(callable\\(\\)\\: iterable\\)\\|iterable, interfaces\\?\\: \\(callable\\(\\)\\: iterable\\<callable\\(\\)\\: GraphQL\\\\Type\\\\Definition\\\\InterfaceType\\|GraphQL\\\\Type\\\\Definition\\\\InterfaceType\\>\\)\\|iterable\\<\\(callable\\(\\)\\: GraphQL\\\\Type\\\\Definition\\\\InterfaceType\\)\\|GraphQL\\\\Type\\\\Definition\\\\InterfaceType\\>, isTypeOf\\?\\: \\(callable\\(mixed, mixed, GraphQL\\\\Type\\\\Definition\\\\ResolveInfo\\)\\: \\(bool\\|GraphQL\\\\Deferred\\|null\\)\\)\\|null, astNode\\?\\: GraphQL\\\\Language\\\\AST\\\\ObjectTypeDefinitionNode\\|null, extensionASTNodes\\?\\: array\\<int, GraphQL\\\\Language\\\\AST\\\\ObjectTypeExtensionNode\\>\\|null\\}, non\\-empty\\-array\\<string, array\\<int\\|string, non\\-empty\\-array\\<string, mixed\\>\\|\\(ArrayAccess&Rebing\\\\GraphQL\\\\Support\\\\Field\\)\\>\\|string\\> given\\.$#"
1520
count: 1
@@ -125,6 +130,11 @@ parameters:
125130
count: 1
126131
path: src/Support/Field.php
127132

133+
-
134+
message: "#^Method Rebing\\\\GraphQL\\\\Support\\\\Field\\:\\:appendGlobalMiddlewares\\(\\) should return list\\<class\\-string\\|object\\> but returns array\\.$#"
135+
count: 1
136+
path: src/Support/Field.php
137+
128138
-
129139
message: "#^Method Rebing\\\\GraphQL\\\\Support\\\\Field\\:\\:attributes\\(\\) return type has no value type specified in iterable type array\\.$#"
130140
count: 1

src/GraphQL.php

+12-8
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class GraphQL
4141
/** @var Container */
4242
protected $app;
4343

44-
/** @var array<Schema> */
44+
/** @var array<string,Schema> */
4545
protected $schemas = [];
4646

4747
/**
@@ -54,7 +54,7 @@ class GraphQL
5454
/**
5555
* These middleware are executed before all resolve methods
5656
*
57-
* @var array<object|class-string>
57+
* @var list<object|class-string>
5858
*/
5959
protected $globalResolverMiddlewares = [];
6060

@@ -72,6 +72,7 @@ public function __construct(Container $app, Repository $config)
7272

7373
public function schema(?string $schemaName = null): Schema
7474
{
75+
/** @var string $schemaName */
7576
$schemaName = $schemaName ?? $this->config->get('graphql.default_schema', 'default');
7677

7778
if (isset($this->schemas[$schemaName])) {
@@ -108,6 +109,7 @@ public function query(string $query, ?array $variables = null, array $opts = [])
108109
public function queryAndReturnResult(string $query, ?array $variables = null, array $opts = []): ExecutionResult
109110
{
110111
$context = $opts['context'] ?? null;
112+
/** @var string $schemaName */
111113
$schemaName = $opts['schema'] ?? $this->config->get('graphql.default_schema', 'default');
112114
$operationName = $opts['operationName'] ?? null;
113115
$rootValue = $opts['rootValue'] ?? null;
@@ -153,12 +155,13 @@ protected function executeAndReturnResult(string $schemaName, Schema $schema, Op
153155
}
154156

155157
/**
156-
* @param array<string> $middleware
158+
* @param list<string> $middleware
157159
* @param mixed $rootValue
158160
* @param mixed $contextValue
159161
*/
160162
protected function executeViaMiddleware(array $middleware, string $schemaName, Schema $schema, OperationParams $params, $rootValue = null, $contextValue = null): ExecutionResult
161163
{
164+
/** @var ExecutionResult */
162165
return $this->app->make(Pipeline::class)
163166
->send([$schemaName, $schema, $params, $rootValue, $contextValue])
164167
->through($middleware)
@@ -167,7 +170,7 @@ protected function executeViaMiddleware(array $middleware, string $schemaName, S
167170
}
168171

169172
/**
170-
* @return array<string>
173+
* @return list<class-string>
171174
*/
172175
protected function executionMiddleware(string $schemaName): array
173176
{
@@ -183,8 +186,8 @@ protected function executionMiddleware(string $schemaName): array
183186
}
184187

185188
/**
186-
* @phpstan-param array<class-string> $middlewares
187-
* @phpstan-return array<class-string>
189+
* @phpstan-param list<class-string> $middlewares
190+
* @phpstan-return list<class-string>
188191
*/
189192
protected function appendGraphqlExecutionMiddleware(array $middlewares): array
190193
{
@@ -202,7 +205,7 @@ public function appendGlobalResolverMiddleware(object|string $class): void
202205
}
203206

204207
/**
205-
* @phpstan-return array<object|class-string>
208+
* @phpstan-return list<object|class-string>
206209
*/
207210
public function getGlobalResolverMiddlewares(): array
208211
{
@@ -385,6 +388,7 @@ public function buildSchemaFromConfig(array $schemaConfig): Schema
385388
$schemaQuery = $schemaConfig['query'] ?? [];
386389
$schemaMutation = $schemaConfig['mutation'] ?? [];
387390
$schemaSubscription = $schemaConfig['subscription'] ?? [];
391+
/** @var array<int|string,string> $schemaTypes */
388392
$schemaTypes = $schemaConfig['types'] ?? [];
389393
$schemaDirectives = $schemaConfig['directives'] ?? [];
390394

@@ -471,7 +475,7 @@ public function getTypes(): array
471475
}
472476

473477
/**
474-
* @return array<Schema>
478+
* @return array<string,Schema>
475479
*/
476480
public function getSchemas(): array
477481
{

src/Helpers.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ class Helpers
1212
*
1313
* Apply a callback to a value or each value in an array.
1414
*
15-
* @param mixed|array<mixed> $valueOrValues
16-
* @return mixed|array<mixed>
15+
* @param mixed|list<mixed> $valueOrValues
16+
* @return mixed|list<mixed>
1717
*/
1818
public static function applyEach(Closure $callback, $valueOrValues)
1919
{

src/Support/Contracts/ConfigConvertible.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ interface ConfigConvertible
99
{
1010
/**
1111
* @return array{
12-
* execution_middleware?:array<class-string<AbstractExecutionMiddleware>>,
12+
* execution_middleware?:list<class-string<AbstractExecutionMiddleware>>,
1313
* method?:string|string[],
1414
* middleware?:array<string|class-string>,
15-
* mutation?:array<string,class-string>|array<class-string>,
16-
* query:array<string,class-string>|array<class-string>,
17-
* types?:array<string,class-string>|array<class-string>
15+
* mutation?:array<string,class-string>|list<class-string>,
16+
* query:array<string,class-string>|list<class-string>,
17+
* types?:array<string,class-string>|list<class-string>
1818
* }
1919
*/
2020
public function toConfig(): array;

src/Support/Field.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ abstract class Field
2424
/** @var array<string,mixed> */
2525
protected $attributes = [];
2626

27-
/** @var string[] */
27+
/** @var list<class-string> */
2828
protected $middleware = [];
2929

3030
/**
@@ -139,16 +139,16 @@ public function getValidator(array $args, array $rules): ValidatorContract
139139
}
140140

141141
/**
142-
* @return array<string>
142+
* @return list<class-string>
143143
*/
144144
protected function getMiddleware(): array
145145
{
146146
return $this->middleware;
147147
}
148148

149149
/**
150-
* @return array<class-string|object>
151-
* @phpstan-param array<string> $middleware
150+
* @return list<class-string|object>
151+
* @phpstan-param list<string> $middleware
152152
*/
153153
protected function appendGlobalMiddlewares(array $middleware): array
154154
{

tests/Database/EmptyQueryTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class EmptyQueryTest extends TestCaseDatabase
1010
{
1111
/**
1212
* @dataProvider dataForEmptyQuery
13-
* @param array<mixed> $parameters
13+
* @param list<mixed> $parameters
1414
*/
1515
public function testEmptyQuery(array $parameters, string $expectedError): void
1616
{
@@ -132,7 +132,7 @@ static function (array $result): array {
132132
}
133133

134134
/**
135-
* @return array<mixed>
135+
* @return list<mixed>
136136
*/
137137
public static function dataForEmptyQuery(): array
138138
{

tests/Support/Objects/ExampleRuleTestingInputObject.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public function fields(): array
5555
/**
5656
* @param mixed $root
5757
* @param array<string,mixed> $args
58-
* @return array<string>
58+
* @return list<string>
5959
*/
6060
public function resolve($root, array $args): array
6161
{

0 commit comments

Comments
 (0)