Skip to content
This repository was archived by the owner on Feb 28, 2025. It is now read-only.

Commit 397ff5d

Browse files
alcaeusjmikola
andauthored
PHPLIB-1250 Split encoders and fix psalm issues (#46)
* Split encoders into multiple files * Remove unnecessary factory method * Add missing template annotation * Add MixedArgument and MixedAssignment to psalm baseline * Fix type issues in query classes * Extract common builder code and fix template annotations * Update psalm baseline * Define ENCODE constant in OperatorInterface * Simplify canEncode check in BuilderEncoder * Use strict comparison * Fix checkstyle errors * Fix wrong object type check * Update todo for properties in interfaces * Fix return type of PipelineEncoder::encode * Update comment in OperatorEncoder Co-authored-by: Jeremy Mikola <[email protected]> * Optimise cached encoders structure * Add undefined case for Encode enum --------- Co-authored-by: Jeremy Mikola <[email protected]>
1 parent aa7cffc commit 397ff5d

16 files changed

+709
-288
lines changed

phpcs.xml.dist

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
<exclude name="SlevomatCodingStandard.ControlStructures.UselessIfConditionWithReturn" />
4343
<exclude name="SlevomatCodingStandard.Functions.StaticClosure" />
4444
<exclude name="SlevomatCodingStandard.Functions.UnusedInheritedVariablePassedToClosure" />
45-
<exclude name="SlevomatCodingStandard.Operators.DisallowEqualOperators" />
4645

4746
<!-- ********************* -->
4847
<!-- Exclude broken sniffs -->

psalm-baseline.xml

Lines changed: 132 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,134 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<files psalm-version="5.15.0@5c774aca4746caf3d239d9c8cadb9f882ca29352">
2+
<files psalm-version="5.20.0@3f284e96c9d9be6fe6b15c79416e1d1903dcfef4">
3+
<file src="src/Builder/Encoder/AbstractExpressionEncoder.php">
4+
<MixedAssignment>
5+
<code>$val</code>
6+
<code>$val</code>
7+
<code>$value[$key]</code>
8+
</MixedAssignment>
9+
</file>
10+
<file src="src/Builder/Encoder/CombinedFieldQueryEncoder.php">
11+
<MixedAssignment>
12+
<code>$filter</code>
13+
<code>$filterValue</code>
14+
</MixedAssignment>
15+
</file>
16+
<file src="src/Builder/Encoder/FieldPathEncoder.php">
17+
<NoInterfaceProperties>
18+
<code><![CDATA[$value->name]]></code>
19+
</NoInterfaceProperties>
20+
</file>
21+
<file src="src/Builder/Encoder/OperatorEncoder.php">
22+
<MixedAssignment>
23+
<code>$result</code>
24+
<code>$result[]</code>
25+
<code>$val</code>
26+
<code>$val</code>
27+
<code>$val</code>
28+
<code>$val</code>
29+
<code>$val</code>
30+
</MixedAssignment>
31+
</file>
32+
<file src="src/Builder/Encoder/OutputWindowEncoder.php">
33+
<MixedArgument>
34+
<code>$result</code>
35+
</MixedArgument>
36+
</file>
37+
<file src="src/Builder/Encoder/QueryEncoder.php">
38+
<MixedArgument>
39+
<code><![CDATA[$this->recursiveEncode($value)]]></code>
40+
</MixedArgument>
41+
<MixedAssignment>
42+
<code>$subValue</code>
43+
<code>$value</code>
44+
</MixedAssignment>
45+
</file>
46+
<file src="src/Builder/Projection/ElemMatchOperator.php">
47+
<MixedArgumentTypeCoercion>
48+
<code>$query</code>
49+
</MixedArgumentTypeCoercion>
50+
</file>
51+
<file src="src/Builder/Query.php">
52+
<ArgumentTypeCoercion>
53+
<code>$query</code>
54+
</ArgumentTypeCoercion>
55+
</file>
56+
<file src="src/Builder/Query/ElemMatchOperator.php">
57+
<MixedArgumentTypeCoercion>
58+
<code>$query</code>
59+
</MixedArgumentTypeCoercion>
60+
</file>
61+
<file src="src/Builder/Stage/AddFieldsStage.php">
62+
<PropertyTypeCoercion>
63+
<code>$expression</code>
64+
</PropertyTypeCoercion>
65+
<TooManyTemplateParams>
66+
<code>stdClass</code>
67+
</TooManyTemplateParams>
68+
</file>
69+
<file src="src/Builder/Stage/FacetStage.php">
70+
<PropertyTypeCoercion>
71+
<code>$facet</code>
72+
</PropertyTypeCoercion>
73+
<TooManyTemplateParams>
74+
<code>stdClass</code>
75+
</TooManyTemplateParams>
76+
</file>
77+
<file src="src/Builder/Stage/GeoNearStage.php">
78+
<MixedArgumentTypeCoercion>
79+
<code>$query</code>
80+
</MixedArgumentTypeCoercion>
81+
</file>
82+
<file src="src/Builder/Stage/GraphLookupStage.php">
83+
<MixedArgumentTypeCoercion>
84+
<code>$restrictSearchWithMatch</code>
85+
</MixedArgumentTypeCoercion>
86+
</file>
87+
<file src="src/Builder/Stage/GroupStage.php">
88+
<PropertyTypeCoercion>
89+
<code>$field</code>
90+
</PropertyTypeCoercion>
91+
<TooManyTemplateParams>
92+
<code>stdClass</code>
93+
</TooManyTemplateParams>
94+
</file>
95+
<file src="src/Builder/Stage/MatchStage.php">
96+
<MixedArgumentTypeCoercion>
97+
<code>$query</code>
98+
</MixedArgumentTypeCoercion>
99+
</file>
100+
<file src="src/Builder/Stage/ProjectStage.php">
101+
<PropertyTypeCoercion>
102+
<code>$specification</code>
103+
</PropertyTypeCoercion>
104+
<TooManyTemplateParams>
105+
<code>stdClass</code>
106+
</TooManyTemplateParams>
107+
</file>
108+
<file src="src/Builder/Stage/SetStage.php">
109+
<PropertyTypeCoercion>
110+
<code>$field</code>
111+
</PropertyTypeCoercion>
112+
<TooManyTemplateParams>
113+
<code>stdClass</code>
114+
</TooManyTemplateParams>
115+
</file>
116+
<file src="src/Builder/Type/OutputWindow.php">
117+
<DocblockTypeContradiction>
118+
<code><![CDATA[! is_string($documents[1]) && ! is_int($documents[1])]]></code>
119+
<code><![CDATA[! is_string($range[1]) && ! is_numeric($range[1])]]></code>
120+
</DocblockTypeContradiction>
121+
</file>
122+
<file src="src/Builder/Type/QueryObject.php">
123+
<MixedAssignment>
124+
<code>$queries[$fieldPath]</code>
125+
<code>$query</code>
126+
</MixedAssignment>
127+
<RedundantConditionGivenDocblockType>
128+
<code><![CDATA[count($queriesOrArrayOfQueries) === 1 &&
129+
isset($queriesOrArrayOfQueries[0]) &&
130+
is_array($queriesOrArrayOfQueries[0]) &&
131+
count($queriesOrArrayOfQueries[0]) > 0]]></code>
132+
</RedundantConditionGivenDocblockType>
133+
</file>
3134
</files>

0 commit comments

Comments
 (0)