Skip to content

Commit 454f843

Browse files
committed
PHPLIB-1752 Upgrade to psalm 6.14
1 parent 75fa63e commit 454f843

File tree

4 files changed

+206
-16
lines changed

4 files changed

+206
-16
lines changed

.github/workflows/static-analysis.yml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,19 @@ on:
1717
type: string
1818
required: true
1919

20-
env:
21-
PHP_VERSION: "8.2"
22-
# TODO: change to "stable" once 2.0.0 is released
23-
# DRIVER_VERSION: "stable"
24-
DRIVER_VERSION: "mongodb/mongo-php-driver@v2.x"
25-
2620
jobs:
2721
psalm:
2822
name: "Psalm"
2923
runs-on: "ubuntu-24.04"
3024

25+
strategy:
26+
matrix:
27+
includes:
28+
- php-version: "8.1"
29+
driver-version: "stable"
30+
- php-version: "8.5"
31+
driver-version: "mongodb/mongo-php-driver@v2.x"
32+
3133
steps:
3234
- name: "Checkout"
3335
uses: "actions/checkout@v5"
@@ -42,8 +44,8 @@ jobs:
4244
- name: "Setup"
4345
uses: "./.github/actions/setup"
4446
with:
45-
php-version: ${{ env.PHP_VERSION }}
46-
driver-version: ${{ env.DRIVER_VERSION }}
47+
php-version: ${{ matrix.php-version }}
48+
driver-version: ${{ matrix.driver-version }}
4749

4850
- name: "Run Psalm"
4951
run: "vendor/bin/psalm --show-info=false --stats --output-format=github --threads=$(nproc) --report=psalm.sarif"

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"phpunit/phpunit": "^10.5.35",
2222
"rector/rector": "^2.1.4",
2323
"squizlabs/php_codesniffer": "^3.7",
24-
"vimeo/psalm": "6.5.*"
24+
"vimeo/psalm": "~6.14.2"
2525
},
2626
"replace": {
2727
"mongodb/builder": "*"

psalm-baseline.xml

Lines changed: 192 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<files psalm-version="6.5.1@3f17a6b24a2dbe543e21408c2b19108cf6a355ef">
2+
<files psalm-version="6.14.2@bbd217fc98c0daa0a13aea2a7f119d03ba3fc9a0">
3+
<file src="examples/aggregate.php">
4+
<MixedAssignment>
5+
<code><![CDATA[$collection]]></code>
6+
<code><![CDATA[$cursor]]></code>
7+
</MixedAssignment>
8+
<MixedMethodCall>
9+
<code><![CDATA[aggregate]]></code>
10+
<code><![CDATA[drop]]></code>
11+
<code><![CDATA[insertMany]]></code>
12+
</MixedMethodCall>
13+
<MixedPropertyFetch>
14+
<code><![CDATA[$client->test->aggregate]]></code>
15+
</MixedPropertyFetch>
16+
<UndefinedMagicPropertyFetch>
17+
<code><![CDATA[$client->test]]></code>
18+
</UndefinedMagicPropertyFetch>
19+
</file>
320
<file src="examples/atlas_search.php">
421
<MixedArgument>
522
<code><![CDATA[$document['name']]]></code>
@@ -23,6 +40,117 @@
2340
<code><![CDATA[$document['name']]]></code>
2441
</PossiblyInvalidArrayAccess>
2542
</file>
43+
<file src="examples/bulk.php">
44+
<MixedAssignment>
45+
<code><![CDATA[$collection]]></code>
46+
<code><![CDATA[$cursor]]></code>
47+
</MixedAssignment>
48+
<MixedMethodCall>
49+
<code><![CDATA[bulkWrite]]></code>
50+
<code><![CDATA[drop]]></code>
51+
<code><![CDATA[find]]></code>
52+
<code><![CDATA[insertMany]]></code>
53+
</MixedMethodCall>
54+
<MixedPropertyFetch>
55+
<code><![CDATA[$client->test->bulk]]></code>
56+
</MixedPropertyFetch>
57+
<UndefinedMagicPropertyFetch>
58+
<code><![CDATA[$client->test]]></code>
59+
</UndefinedMagicPropertyFetch>
60+
</file>
61+
<file src="examples/changestream.php">
62+
<MixedAssignment>
63+
<code><![CDATA[$changeStream]]></code>
64+
<code><![CDATA[$collection]]></code>
65+
</MixedAssignment>
66+
<MixedMethodCall>
67+
<code><![CDATA[createCollection]]></code>
68+
<code><![CDATA[current]]></code>
69+
<code><![CDATA[drop]]></code>
70+
<code><![CDATA[insertMany]]></code>
71+
<code><![CDATA[next]]></code>
72+
<code><![CDATA[rewind]]></code>
73+
<code><![CDATA[valid]]></code>
74+
<code><![CDATA[watch]]></code>
75+
</MixedMethodCall>
76+
<MixedPropertyFetch>
77+
<code><![CDATA[$client->test->changestream]]></code>
78+
</MixedPropertyFetch>
79+
<UndefinedMagicPropertyFetch>
80+
<code><![CDATA[$client->test]]></code>
81+
</UndefinedMagicPropertyFetch>
82+
</file>
83+
<file src="examples/command_logger.php">
84+
<MixedAssignment>
85+
<code><![CDATA[$collection]]></code>
86+
<code><![CDATA[$cursor]]></code>
87+
</MixedAssignment>
88+
<MixedMethodCall>
89+
<code><![CDATA[drop]]></code>
90+
<code><![CDATA[find]]></code>
91+
<code><![CDATA[insertMany]]></code>
92+
<code><![CDATA[updateMany]]></code>
93+
</MixedMethodCall>
94+
<MixedPropertyFetch>
95+
<code><![CDATA[$client->test->command_logger]]></code>
96+
</MixedPropertyFetch>
97+
<UndefinedMagicPropertyFetch>
98+
<code><![CDATA[$client->test]]></code>
99+
</UndefinedMagicPropertyFetch>
100+
</file>
101+
<file src="examples/gridfs_stream.php">
102+
<ImplicitToStringCast>
103+
<code><![CDATA[$id]]></code>
104+
</ImplicitToStringCast>
105+
<MixedArgument>
106+
<code><![CDATA[$stream]]></code>
107+
<code><![CDATA[$stream]]></code>
108+
<code><![CDATA[$stream]]></code>
109+
<code><![CDATA[$stream]]></code>
110+
</MixedArgument>
111+
<MixedAssignment>
112+
<code><![CDATA[$bucket]]></code>
113+
<code><![CDATA[$stream]]></code>
114+
<code><![CDATA[$stream]]></code>
115+
</MixedAssignment>
116+
<MixedMethodCall>
117+
<code><![CDATA[delete]]></code>
118+
<code><![CDATA[getFileIdForStream]]></code>
119+
<code><![CDATA[openDownloadStreamByName]]></code>
120+
<code><![CDATA[openUploadStream]]></code>
121+
<code><![CDATA[selectGridFSBucket]]></code>
122+
</MixedMethodCall>
123+
<UndefinedMagicPropertyFetch>
124+
<code><![CDATA[$client->test]]></code>
125+
</UndefinedMagicPropertyFetch>
126+
</file>
127+
<file src="examples/gridfs_stream_wrapper.php">
128+
<MixedAssignment>
129+
<code><![CDATA[$bucket]]></code>
130+
</MixedAssignment>
131+
<MixedMethodCall>
132+
<code><![CDATA[drop]]></code>
133+
<code><![CDATA[registerGlobalStreamWrapperAlias]]></code>
134+
<code><![CDATA[selectGridFSBucket]]></code>
135+
</MixedMethodCall>
136+
<UndefinedMagicPropertyFetch>
137+
<code><![CDATA[$client->test]]></code>
138+
</UndefinedMagicPropertyFetch>
139+
</file>
140+
<file src="examples/gridfs_upload.php">
141+
<MixedAssignment>
142+
<code><![CDATA[$gridfs]]></code>
143+
</MixedAssignment>
144+
<MixedMethodCall>
145+
<code><![CDATA[delete]]></code>
146+
<code><![CDATA[downloadToStreamByName]]></code>
147+
<code><![CDATA[selectGridFSBucket]]></code>
148+
<code><![CDATA[uploadFromStream]]></code>
149+
</MixedMethodCall>
150+
<UndefinedMagicPropertyFetch>
151+
<code><![CDATA[$client->test]]></code>
152+
</UndefinedMagicPropertyFetch>
153+
</file>
26154
<file src="examples/persistable.php">
27155
<LessSpecificReturnStatement>
28156
<code><![CDATA[(object) [
@@ -35,10 +163,69 @@
35163
'address' => $this->address,
36164
]]]></code>
37165
</LessSpecificReturnStatement>
166+
<MixedAssignment>
167+
<code><![CDATA[$collection]]></code>
168+
<code><![CDATA[$foundEntry]]></code>
169+
</MixedAssignment>
170+
<MixedMethodCall>
171+
<code><![CDATA[drop]]></code>
172+
<code><![CDATA[findOne]]></code>
173+
<code><![CDATA[insertOne]]></code>
174+
</MixedMethodCall>
175+
<MixedPropertyFetch>
176+
<code><![CDATA[$client->test->persistable]]></code>
177+
</MixedPropertyFetch>
38178
<MoreSpecificReturnType>
39179
<code><![CDATA[stdClass]]></code>
40180
<code><![CDATA[stdClass]]></code>
41181
</MoreSpecificReturnType>
182+
<UndefinedMagicPropertyFetch>
183+
<code><![CDATA[$client->test]]></code>
184+
</UndefinedMagicPropertyFetch>
185+
</file>
186+
<file src="examples/sdam_logger.php">
187+
<MixedMethodCall>
188+
<code><![CDATA[command]]></code>
189+
</MixedMethodCall>
190+
<UndefinedMagicPropertyFetch>
191+
<code><![CDATA[$client->test]]></code>
192+
</UndefinedMagicPropertyFetch>
193+
</file>
194+
<file src="examples/typemap.php">
195+
<MixedAssignment>
196+
<code><![CDATA[$collection]]></code>
197+
<code><![CDATA[$entry]]></code>
198+
</MixedAssignment>
199+
<MixedMethodCall>
200+
<code><![CDATA[drop]]></code>
201+
<code><![CDATA[findOne]]></code>
202+
<code><![CDATA[insertOne]]></code>
203+
</MixedMethodCall>
204+
<MixedPropertyFetch>
205+
<code><![CDATA[$client->test->typemap]]></code>
206+
</MixedPropertyFetch>
207+
<UndefinedMagicPropertyFetch>
208+
<code><![CDATA[$client->test]]></code>
209+
</UndefinedMagicPropertyFetch>
210+
</file>
211+
<file src="examples/with_transaction.php">
212+
<MixedAssignment>
213+
<code><![CDATA[$collection]]></code>
214+
<code><![CDATA[$cursor]]></code>
215+
</MixedAssignment>
216+
<MixedMethodCall>
217+
<code><![CDATA[createCollection]]></code>
218+
<code><![CDATA[drop]]></code>
219+
<code><![CDATA[find]]></code>
220+
<code><![CDATA[insertMany]]></code>
221+
<code><![CDATA[updateMany]]></code>
222+
</MixedMethodCall>
223+
<MixedPropertyFetch>
224+
<code><![CDATA[$client->test->with_transaction]]></code>
225+
</MixedPropertyFetch>
226+
<UndefinedMagicPropertyFetch>
227+
<code><![CDATA[$client->test]]></code>
228+
</UndefinedMagicPropertyFetch>
42229
</file>
43230
<file src="src/Builder/BuilderEncoder.php">
44231
<MixedReturnStatement>
@@ -240,6 +427,10 @@
240427
</PossiblyInvalidArgument>
241428
</file>
242429
<file src="src/ClientBulkWrite.php">
430+
<InvalidAttribute>
431+
<code><![CDATA[NoDiscard]]></code>
432+
<code><![CDATA[NoDiscard]]></code>
433+
</InvalidAttribute>
243434
<PossiblyInvalidArgument>
244435
<code><![CDATA[$document]]></code>
245436
<code><![CDATA[$replacement]]></code>
@@ -388,9 +579,6 @@
388579
<InvalidReturnType>
389580
<code><![CDATA[CursorInterface<TValue>]]></code>
390581
</InvalidReturnType>
391-
<LessSpecificImplementedReturnType>
392-
<code><![CDATA[CursorInterface<TValue>]]></code>
393-
</LessSpecificImplementedReturnType>
394582
<MixedArgument>
395583
<code><![CDATA[$reply->cursor->nextBatch]]></code>
396584
</MixedArgument>
@@ -559,9 +747,6 @@
559747
<MixedMethodCall>
560748
<code><![CDATA[isInTransaction]]></code>
561749
</MixedMethodCall>
562-
<MixedReturnStatement>
563-
<code><![CDATA[$server->executeBulkWriteCommand($this->bulkWriteCommand, $options)]]></code>
564-
</MixedReturnStatement>
565750
</file>
566751
<file src="src/Operation/Count.php">
567752
<MixedAssignment>

psalm.xml.dist

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,8 @@
4545
<directory name="examples" />
4646
</errorLevel>
4747
</RiskyTruthyFalsyComparison>
48+
49+
<MissingOverrideAttribute errorLevel="suppress" />
50+
<ClassMustBeFinal errorLevel="info" />
4851
</issueHandlers>
4952
</psalm>

0 commit comments

Comments
 (0)