Skip to content

Commit 7613ad5

Browse files
committed
qa: apply suggestions from Psalm and establish initial baseline
Signed-off-by: Matthew Weier O'Phinney <matthew@weierophinney.net>
1 parent ea5ee28 commit 7613ad5

8 files changed

Lines changed: 370 additions & 134 deletions

psalm-baseline.xml

Lines changed: 308 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,308 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<files psalm-version="4.7.3@38c452ae584467e939d55377aaf83b5a26f19dd1">
3+
<file src="config/module.config.php">
4+
<UndefinedClass occurrences="4">
5+
<code>SwaggerUi</code>
6+
<code>SwaggerUi</code>
7+
<code>SwaggerUi</code>
8+
<code>\ZF\Apigility\Documentation\Swagger\SwaggerUi</code>
9+
</UndefinedClass>
10+
</file>
11+
<file src="src/Api.php">
12+
<PropertyNotSetInConstructor occurrences="2">
13+
<code>Api</code>
14+
<code>Api</code>
15+
</PropertyNotSetInConstructor>
16+
</file>
17+
<file src="src/Model/ArrayType.php">
18+
<MixedArrayAccess occurrences="1">
19+
<code>$target[0]</code>
20+
</MixedArrayAccess>
21+
</file>
22+
<file src="src/Model/ModelGenerator.php">
23+
<MixedAssignment occurrences="1">
24+
<code>$target</code>
25+
</MixedAssignment>
26+
</file>
27+
<file src="src/Model/ObjectType.php">
28+
<MissingClosureParamType occurrences="2">
29+
<code>$key</code>
30+
<code>$types</code>
31+
</MissingClosureParamType>
32+
<MixedArgument occurrences="2">
33+
<code>$target</code>
34+
<code>$types</code>
35+
</MixedArgument>
36+
<MixedArrayOffset occurrences="1">
37+
<code>[$key =&gt; $this-&gt;modelGenerator-&gt;generateType($target-&gt;$key)]</code>
38+
</MixedArrayOffset>
39+
<MixedPropertyFetch occurrences="1">
40+
<code>$target-&gt;$key</code>
41+
</MixedPropertyFetch>
42+
</file>
43+
<file src="src/Module.php">
44+
<MixedAssignment occurrences="2">
45+
<code>$events</code>
46+
<code>$view</code>
47+
</MixedAssignment>
48+
<MixedInferredReturnType occurrences="1">
49+
<code>array</code>
50+
</MixedInferredReturnType>
51+
<MixedMethodCall occurrences="2">
52+
<code>attach</code>
53+
<code>getEventManager</code>
54+
</MixedMethodCall>
55+
<MixedReturnStatement occurrences="1">
56+
<code>include __DIR__ . '/../config/module.config.php'</code>
57+
</MixedReturnStatement>
58+
</file>
59+
<file src="src/Service.php">
60+
<MixedArgument occurrences="4">
61+
<code>$firstPostDescription</code>
62+
<code>$operation</code>
63+
<code>$operation</code>
64+
<code>$operation</code>
65+
</MixedArgument>
66+
<MixedArrayAccess occurrences="2">
67+
<code>$responseStatusCode['code']</code>
68+
<code>$responseStatusCode['message']</code>
69+
</MixedArrayAccess>
70+
<MixedAssignment occurrences="5">
71+
<code>$firstPostDescription</code>
72+
<code>$operation</code>
73+
<code>$operation</code>
74+
<code>$operation</code>
75+
<code>$responseStatusCode</code>
76+
</MixedAssignment>
77+
<PropertyNotSetInConstructor occurrences="10">
78+
<code>Service</code>
79+
<code>Service</code>
80+
<code>Service</code>
81+
<code>Service</code>
82+
<code>Service</code>
83+
<code>Service</code>
84+
<code>Service</code>
85+
<code>Service</code>
86+
<code>Service</code>
87+
<code>Service</code>
88+
</PropertyNotSetInConstructor>
89+
<RedundantCondition occurrences="1">
90+
<code>method_exists($field, 'getFieldType')</code>
91+
</RedundantCondition>
92+
<RedundantConditionGivenDocblockType occurrences="1">
93+
<code>is_array($entityOperations)</code>
94+
</RedundantConditionGivenDocblockType>
95+
</file>
96+
<file src="src/SwaggerUiController.php">
97+
<MixedAssignment occurrences="1">
98+
<code>$api</code>
99+
</MixedAssignment>
100+
<MixedMethodCall occurrences="1">
101+
<code>fromRoute</code>
102+
</MixedMethodCall>
103+
<PropertyNotSetInConstructor occurrences="5">
104+
<code>SwaggerUiController</code>
105+
<code>SwaggerUiController</code>
106+
<code>SwaggerUiController</code>
107+
<code>SwaggerUiController</code>
108+
<code>SwaggerUiController</code>
109+
</PropertyNotSetInConstructor>
110+
</file>
111+
<file src="src/SwaggerUiControllerFactory.php">
112+
<DeprecatedInterface occurrences="1">
113+
<code>SwaggerUiControllerFactory</code>
114+
</DeprecatedInterface>
115+
<MixedArgument occurrences="2">
116+
<code>$apiFactory</code>
117+
<code>$container</code>
118+
</MixedArgument>
119+
<MixedAssignment occurrences="2">
120+
<code>$apiFactory</code>
121+
<code>$container</code>
122+
</MixedAssignment>
123+
<ParamNameMismatch occurrences="1">
124+
<code>$controllers</code>
125+
</ParamNameMismatch>
126+
<UndefinedInterfaceMethod occurrences="1">
127+
<code>getServiceLocator</code>
128+
</UndefinedInterfaceMethod>
129+
</file>
130+
<file src="src/SwaggerViewStrategy.php">
131+
<DocblockTypeContradiction occurrences="1">
132+
<code>$this-&gt;model instanceof ViewModel</code>
133+
</DocblockTypeContradiction>
134+
<MixedAssignment occurrences="1">
135+
<code>$headers</code>
136+
</MixedAssignment>
137+
<MixedMethodCall occurrences="1">
138+
<code>addHeaderLine</code>
139+
</MixedMethodCall>
140+
<PossiblyNullArgument occurrences="1">
141+
<code>$response</code>
142+
</PossiblyNullArgument>
143+
<PropertyNotSetInConstructor occurrences="1">
144+
<code>$model</code>
145+
</PropertyNotSetInConstructor>
146+
</file>
147+
<file src="src/SwaggerViewStrategyFactory.php">
148+
<MixedArgument occurrences="1">
149+
<code>$container-&gt;get('ViewJsonRenderer')</code>
150+
</MixedArgument>
151+
</file>
152+
<file src="src/ViewModel.php">
153+
<ImplementedReturnTypeMismatch occurrences="1">
154+
<code>array|Traversable|ArrayAccess</code>
155+
</ImplementedReturnTypeMismatch>
156+
<InvalidArgument occurrences="1">
157+
<code>$this-&gt;variables['type'] || ! $this-&gt;variables-&gt;offsetExists('type')</code>
158+
</InvalidArgument>
159+
<MixedArgument occurrences="1">
160+
<code>$this-&gt;variables['documentation']</code>
161+
</MixedArgument>
162+
<MixedInferredReturnType occurrences="1">
163+
<code>array|Traversable|ArrayAccess</code>
164+
</MixedInferredReturnType>
165+
<MixedReturnStatement occurrences="1">
166+
<code>$this-&gt;variables['documentation']</code>
167+
</MixedReturnStatement>
168+
<PossiblyInvalidMethodCall occurrences="1">
169+
<code>offsetExists</code>
170+
</PossiblyInvalidMethodCall>
171+
</file>
172+
<file src="test/ApiTest.php">
173+
<InvalidArrayOffset occurrences="6">
174+
<code>$this-&gt;fixture['definitions']</code>
175+
<code>$this-&gt;fixture['info']</code>
176+
<code>$this-&gt;fixture['paths']</code>
177+
<code>$this-&gt;fixture['paths']</code>
178+
<code>$this-&gt;fixture['paths']</code>
179+
<code>$this-&gt;fixture['swagger']</code>
180+
</InvalidArrayOffset>
181+
<MissingClosureParamType occurrences="12">
182+
<code>$actual</code>
183+
<code>$actual</code>
184+
<code>$actual</code>
185+
<code>$actual</code>
186+
<code>$expected</code>
187+
<code>$expected</code>
188+
<code>$expected</code>
189+
<code>$expected</code>
190+
<code>$message</code>
191+
<code>$message</code>
192+
<code>$message</code>
193+
<code>$message</code>
194+
</MissingClosureParamType>
195+
<MixedArgument occurrences="18">
196+
<code>$actual</code>
197+
<code>$actual</code>
198+
<code>$actual</code>
199+
<code>$actual</code>
200+
<code>$expected</code>
201+
<code>$expected</code>
202+
<code>$expected</code>
203+
<code>$expected</code>
204+
<code>$expectedOperationValue</code>
205+
<code>$expectedPath</code>
206+
<code>$expectedValue</code>
207+
<code>$message</code>
208+
<code>$message</code>
209+
<code>$message</code>
210+
<code>$message</code>
211+
<code>$paths[$expectedPath]</code>
212+
<code>$this-&gt;fixture['paths']</code>
213+
<code>$this-&gt;result['paths']</code>
214+
</MixedArgument>
215+
<MixedArrayAccess occurrences="3">
216+
<code>$expectedOperationValue[$field]</code>
217+
<code>$paths[$expectedPathKey]</code>
218+
<code>$paths[$expectedPath]</code>
219+
</MixedArrayAccess>
220+
<MixedArrayOffset occurrences="2">
221+
<code>$paths[$expectedPathKey]</code>
222+
<code>$paths[$expectedPath]</code>
223+
</MixedArrayOffset>
224+
<MixedAssignment occurrences="13">
225+
<code>$actual</code>
226+
<code>$expected</code>
227+
<code>$expectedOperationKey</code>
228+
<code>$expectedOperationValue</code>
229+
<code>$expectedPath</code>
230+
<code>$expectedPathKey</code>
231+
<code>$expectedPathValue</code>
232+
<code>$expectedPaths</code>
233+
<code>$expectedPaths</code>
234+
<code>$expectedValue</code>
235+
<code>$paths</code>
236+
<code>$paths</code>
237+
<code>$this-&gt;fixture</code>
238+
</MixedAssignment>
239+
<MixedOperand occurrences="2">
240+
<code>$expectedOperationKey</code>
241+
<code>$expectedPathKey</code>
242+
</MixedOperand>
243+
<RedundantConditionGivenDocblockType occurrences="1">
244+
<code>assertNotNull</code>
245+
</RedundantConditionGivenDocblockType>
246+
</file>
247+
<file src="test/BaseApiFactoryTest.php">
248+
<MixedAssignment occurrences="1">
249+
<code>$expectedValue</code>
250+
</MixedAssignment>
251+
<UndefinedThisPropertyAssignment occurrences="1">
252+
<code>$this-&gt;api</code>
253+
</UndefinedThisPropertyAssignment>
254+
</file>
255+
<file src="test/ModelGeneratorTest.php">
256+
<PossiblyNullArgument occurrences="1">
257+
<code>$input</code>
258+
</PossiblyNullArgument>
259+
<RedundantConditionGivenDocblockType occurrences="1">
260+
<code>assertNotNull</code>
261+
</RedundantConditionGivenDocblockType>
262+
</file>
263+
<file src="test/SwaggerUiControllerFactoryTest.php">
264+
<UnnecessaryVarAnnotation occurrences="1">
265+
<code>SwaggerUiControllerFactory</code>
266+
</UnnecessaryVarAnnotation>
267+
</file>
268+
<file src="test/SwaggerViewStrategyTest.php">
269+
<MixedArgument occurrences="2">
270+
<code>$header-&gt;getFieldValue()</code>
271+
<code>$this-&gt;events</code>
272+
</MixedArgument>
273+
<MixedAssignment occurrences="1">
274+
<code>$renderer</code>
275+
</MixedAssignment>
276+
<MixedMethodCall occurrences="8">
277+
<code>injectResponse</code>
278+
<code>injectResponse</code>
279+
<code>injectResponse</code>
280+
<code>selectRenderer</code>
281+
<code>selectRenderer</code>
282+
<code>selectRenderer</code>
283+
<code>selectRenderer</code>
284+
<code>selectRenderer</code>
285+
</MixedMethodCall>
286+
<PossiblyInvalidMethodCall occurrences="1">
287+
<code>getFieldValue</code>
288+
</PossiblyInvalidMethodCall>
289+
<PossiblyUndefinedMethod occurrences="1">
290+
<code>getFieldValue</code>
291+
</PossiblyUndefinedMethod>
292+
<UndefinedThisPropertyAssignment occurrences="3">
293+
<code>$this-&gt;events</code>
294+
<code>$this-&gt;renderer</code>
295+
<code>$this-&gt;strategy</code>
296+
</UndefinedThisPropertyAssignment>
297+
<UndefinedThisPropertyFetch occurrences="8">
298+
<code>$this-&gt;events</code>
299+
<code>$this-&gt;renderer</code>
300+
<code>$this-&gt;strategy</code>
301+
<code>$this-&gt;strategy</code>
302+
<code>$this-&gt;strategy</code>
303+
<code>$this-&gt;strategy</code>
304+
<code>$this-&gt;strategy</code>
305+
<code>$this-&gt;strategy</code>
306+
</UndefinedThisPropertyFetch>
307+
</file>
308+
</files>

src/Model/ModelGenerator.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function __construct()
3636

3737
/**
3838
* @param string $jsonInput
39-
* @return array
39+
* @return array|false
4040
* @throws UnmatchedTypeException If unable to match any given $target to a known type.
4141
*/
4242
public function generate($jsonInput)
@@ -55,10 +55,10 @@ public function generate($jsonInput)
5555

5656
/**
5757
* @param mixed $target
58-
* @return TypeInterface
58+
* @return array
5959
* @throws UnmatchedTypeException If unable to match $target to a known type.
6060
*/
61-
public function generateType($target)
61+
public function generateType($target): array
6262
{
6363
foreach ($this->types as $type) {
6464
if ($type->match($target)) {

0 commit comments

Comments
 (0)