forked from doctrine/doctrine1
-
Notifications
You must be signed in to change notification settings - Fork 11
/
phpstan.neon
346 lines (340 loc) · 26.7 KB
/
phpstan.neon
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
includes:
- ./phpstan-baseline.php
- ./phpstan-php7.php
- ./phpstan-php8.php
- ./phpstan-php82.php
parameters:
inferPrivatePropertyTypeFromConstructor: true
treatPhpDocTypesAsCertain: false
level: 8
paths:
- ./lib
ignoreErrors:
-
identifier: missingType.generics
-
identifier: missingType.iterableValue
#########
# Level 0
#########
# These two methods don't exist (anywhere in Doctrine), this sequence adapter is probably broken
- '#Call to an undefined method Doctrine_Sequence_Db2::_connect\(\)\.#'
- '#Call to an undefined method Doctrine_Sequence_Db2::lastSequenceId\(\)\.#'
# This method only exists on Doctrine_Query_Condition
- '#Call to an undefined method Doctrine_Query_Set::parseLiteralValue\(\)\.#'
# These methods are defined on Doctrine_Query, and probably should be made abstract in Doctrine_Query_Abstract,
# but that would break anything extending Doctrine_Query_Abstract that doesn't define the method (like Doctrine_RawSql)
- '#Call to an undefined method Doctrine_Query_Abstract::isSubquery\(\)\.#'
- '#Call to an undefined method Doctrine_Query_Abstract::copy\(\)\.#'
# Similar to above, this is defined in all sub-classes of Doctrine_Query_Condition, but not in the abstract class
# itself, so should be an abstract method, but that would break any code outside of Doctrine that extends this
- '#Call to an undefined method Doctrine_Query_Condition::load\(\)\.#'
# Both Doctrine_Expression_Mysql and Doctrine_Expression_Pgsql call this, but doesn't seem to exist anywhere in
# the Doctrine codebase. Both methods it appears in are marked as "experimental"
- '#Call to an undefined method Doctrine_Expression_.+sql::patternEscapeString\(\)\.#'
# These methods do not exist anywhere in Doctrine
- '#Call to an undefined method Doctrine_Search_Indexer_Dir::indexFile\(\)\.#'
- '#Call to an undefined method Doctrine_Transaction::addDelete\(\)\.#'
# In Doctrine_Cli_Formatter:81, this seems like a bug, the format probably has a type-o, but not sure what the intent was
# php > echo sprintf(">> %-$9s %s", 'testing', 'another test');
# >> 9s another test
- '#Call to sprintf contains 1 placeholder, 2 values given\.#'
# This is probably intentional since it's a mock and doesn't want to have the same functionality as a true connection
- '#Constructor of class Doctrine_Connection_Mock has an unused parameter \$.+\.#'
# Not really harmful or anything, none of the classes that ultimately extend Doctrine_Connection have either param
# in their signature. Even other extending classes shouldn't be affected if removed from signature, but just ignoring
- '#Constructor of class Doctrine_Connection has an unused parameter \$user\.#'
- '#Constructor of class Doctrine_Connection has an unused parameter \$pass\.#'
# These aren't implemented yet (throw an exception stating such)
- '#Constructor of class Doctrine_Node_MaterializedPath_.+Iterator has an unused parameter \$(node|opts)\.#'
#########
# Level 1
#########
# The block for this is a bit confusing (Doctrine_Connection_UnitOfWork:831), but $rootRecord is set on the first
# iteration of the foreach loop, and then referenced in each subsequent iteration. Assuming this is intentional
- '#Variable \$rootRecord might not be defined\.#'
# Not really sure what a satisfactory default value for $oci_length should be, seems that it should maybe be set to the $length parameter
# but not certain (Doctrine_Adapter_Statement_Oracle:175)
- '#Variable \$oci_length might not be defined\.#'
# This one would require some testing to see if it can be predefined, as it's predefined as "null" in a specific case, but undefined otherwise
# (though is_null will return true for undefined variables (but throws a notice), so perhaps it doesn't matter if it's set to null.)
# Doctrine_Hydrator_Graph:131
- '#Variable \$activeRootIdentifier might not be defined\.#'
# These four are only used if the $autoincrement var is set to "true", and if it's set to "true", they get defined.
# In Doctrine_Migration_Base:278
- '#Variable \$autoincrementColumn might not be defined\.#'
- '#Variable \$autoincrementType might not be defined\.#'
- '#Variable \$autoincrementLength might not be defined\.#'
- '#Variable \$autoincrementOptions might not be defined\.#'
# These three happen several times in Doctrine_Node_NestedSet and each are structured the same way. The docblocks say something to the
# effect of "gets record of ... or empty record". The way the code is now, they return null (undefined variable) if the record doesn't exist,
# not an empty record. Could return an empty Doctrine_Record here, but not sure how that would affect behavior.
- '#Variable \$sibling might not be defined\.#'
- '#Variable \$child might not be defined\.#'
# (this one belongs to the previous group as well, not easy to tell phpstan to ignore specific errors in specific files)
# This one shows up in both Doctrine_Query and Doctrine_RawSql and is pretty much the same situation. I'm not sure what a good default
# for parent should be (though in this case it's probably being passed as null in all situations since it could be undefined)
- '#Variable \$parent might not be defined\.#'
# This one refers specifically to Doctrine_Connection:1040. In some cases $stmt is defined in an if block with no else, so would probably be safe
# to set to null in this case
- '#Variable \$stmt might not be defined\.#'
# Similar to the one above in Doctrine_Connection:1075
- '#Variable \$count might not be defined\.#'
# Doctrine_Query_Check:155, this one doesn't really matter much, as it'll just return null/undefined if it doesn't get set, could initialize as null
# perhaps to make phpstan happy
- '#Variable \$func might not be defined\.#'
# In Doctrine_Table:506, seems to change $this->_identifier from an array to the last value of that array, intentional? $pk won't be defined if
# $this->_identifier is empty
- '#Variable \$pk might not be defined\.#'
# Doctrine_Query:981|988|990|1195, not sure what good defaults should be (assuming blank string for most of these is what's happening now)
- '#Variable \$tableAlias might not be defined\.#'
- '#Variable \$componentAlias might not be defined\.#'
- '#Variable \$queryComponentsBefore might not be defined\.#'
#########
# Level 2
#########
# This exists on all of the Validator classes that extend Doctrine_Validator_Driver, but not the Driver class itself. Should probably be
# turned into an abstract class with the Validate method defined as abstract, but would break API
- '#Call to an undefined method Doctrine_Validator_Driver::validate\(\)\.#'
# From Doctrine_IntegrityMapper, this method does not exist, and Doctrine_Manager doesn't appear to have any __call magic method implemented
# (nor its parents). This code isn't currently touched by tests, assuming it's broken.
# (https://codecov.io/gh/diablomedia/doctrine1/src/master/lib/Doctrine/IntegrityMapper.php#L56)
- '#Call to an undefined method Doctrine_Manager::getDeleteActions\(\)\.#'
# In Doctrine_Collection_Iterator_Expandable:40, no static references to a function named "expand" in the codebase, and don't see any __call methods
# on Doctrine_Collection or its parents.
- '#Call to an undefined method Doctrine_Collection::expand\(\)\.#'
# In Doctrine_Export:744, all extending classes of Doctrine_DataDict implement this method, but Doctrine_DataDict does not (should probably be added
# as an abstract definition, which does break public API)
- '#Call to an undefined method Doctrine_DataDict::getNativeDeclaration\(\)\.#'
# In Doctrine_Import_Sqlite:78, this function only seems to exist on the Doctrine_Formatter class, and I don't see any path from Doctrine_Connection
# to Doctrine_Formatter that would work here (no __call in Doctrine_Connection), not covered by tests
- '#Call to an undefined method Doctrine_Connection::fixSequenceName\(\)\.#'
# In Doctrine_Export_Mssql:346|375, similar to above, method exists on Doctrine_Formatter, not Doctrine_Connection (or any subclasses of)
# not covered by tests, probably broken.
- '#Call to an undefined method Doctrine_Connection::getSequenceName\(\)\.#'
# Both of these are in the "Experimental" Doctrine_Expression_Mysql|Pgsql blocks, not covered by tests. The methods exist on
# Doctrine_Formatter, not Doctrine_Connection
- '#Call to an undefined method Doctrine_Connection::escapePattern\(\)\.#'
- '#Call to an undefined method Doctrine_Connection::escape\(\)\.#'
# In Doctrine_Query_Abstract:2099, most of the classes that extend Doctrine_Query_Part implement this parse method but the base
# class does not. Should probably be made into an abstract method definition on that class (but would break API)
- '#Call to an undefined method Doctrine_Query_Part::parse\(\)\.#'
#########
# Level 5
#########
# In Doctrine_Query:2146, the $params var should be an array here as the convertBooleans path will only return an int if
# the passed in value is a bool, which it shouldn't be here, since $params starts as an array in the function arguments
- '#Parameter \#1 \$params of method Doctrine_Query_Abstract::getResultCacheHash\(\) expects array, array\|int given\.#'
# And 968|981
- '#Parameter \#1 \$params of method Doctrine_Query_Abstract::getSqlQuery\(\) expects array, array\|int given\.#'
# And Doctrine_Query:2151|2157
- '#Parameter \#2 \$params of method Doctrine_Connection::fetchAll\(\) expects array, array\|int given\.#'
# These methods are defined on Doctrine_Record but not on Doctrine_Record_Abstract (they should be defined as abstract methods,
# but that would break public API). These came up now because I changed the doc block for the _invoker property (and related methods)
# in Doctrine_Template to match the PHP typehint of the setInvoker method.
- '#Call to an undefined method Doctrine_Record_Abstract::delete\(\)\.#'
# Also appears in Doctrine_Collection:847
- '#Parameter \#1 \$path of static method Doctrine_Parser::load\(\) expects string, array\|string given\.#'
# getIdentifier can return an array for multi-column primary keys, the whereIn stuff in Doctrine_Query will not deal with that well
- '#Parameter \#1 \$expr of method Doctrine_Query_Abstract::whereIn\(\) expects string, array\|string given\.#'
# Most likely this oobject is a Doctrine_Record, but the typehints don't guarantee that
- '#Parameter \#1 \$record of method Doctrine_AuditLog::getVersion\(\) expects Doctrine_Record, Doctrine_Record_Abstract given\.#'
# This is in a conditional that should prevent it from passing non-array data, I think
- '#Parameter \#1 \$array of method Doctrine_Collection::fromArray\(\) expects array, array\|string given\.#'
# null could be passed in this case, would need to check for that in Doctrine_Event
- '#Parameter \#4 \$params of class Doctrine_Event constructor expects array, array\|null given\.#'
# Both of these could come in as null, would need to check for that
- '#Parameter \#1 \$queryComponents of method Doctrine_Hydrator_Abstract::setQueryComponents\(\) expects array, array\|null given\.#'
- '#Parameter \#1 \$tableAliases of method Doctrine_Hydrator_Abstract::setTableAliases\(\) expects array, array\|null given\.#'
#########
# Level 6
#########
# For all of these, there is an "isTree" check right before the method call on getTree() that would prevent it from being false
# Doctrine_Table:281
- '#Cannot call method setUp\(\) on Doctrine_Tree\|false\.#'
# Doctrine_Table:406
- '#Cannot call method setTableDefinition\(\) on Doctrine_Tree\|false\.#'
# These all happen in Doctrine_Node_NestedSet, it seems that it's pretty much assumed that the $_tree property will never
# be false, as there are no "hasTree" checks done here. Perhaps within the NestedSet objects it's not possible for $_tree
# to ever be false.
- '#Cannot call method getBaseAlias\(\) on Doctrine_Tree_NestedSet\|false\.#'
- '#Cannot call method getBaseQuery\(\) on Doctrine_Tree_NestedSet\|false\.#'
- '#Cannot call method returnQueryWithRootId\(\) on Doctrine_Tree_NestedSet\|false\.#'
- '#Cannot call method getBaseComponent\(\) on Doctrine_Tree_NestedSet\|false\.#'
- '#Cannot call method getAttribute\(\) on Doctrine_Tree_NestedSet\|false\.#'
# These are similar to the above ones on Doctrine_Tree. The getNode method of Doctrine_Record may return false if the Table
# object isn't a tree. These calls all happen in the Doctrine_Node_NestedSet class, assuming these won't be reached if the
# Table isn't a tree.
- '#Cannot call method getChildren\(\) on Doctrine_Node\|false\.#'
- '#Cannot call method isRoot\(\) on Doctrine_Node\|false\.#'
- '#Cannot call method getLeftValue\(\) on Doctrine_Node\|false\.#'
- '#Cannot call method getRightValue\(\) on Doctrine_Node\|false\.#'
- '#Cannot call method getRootValue\(\) on Doctrine_Node\|false\.#'
- '#Cannot call method getLevel\(\) on Doctrine_Node\|false\.#'
- '#Cannot call method insertAsLastChildOf\(\) on Doctrine_Node\|false\.#'
# Similar to above, also in NestedSet related code, Doctrine_Tree_NestedSet:101
- '#Cannot call method setRootValue\(\) on Doctrine_Node\|false\.#'
# setLevel method does not exist, perhaps supposed to be updateLevel
- '#Call to an undefined method Doctrine_Node_NestedSet::setLevel\(\)\.#'
# This could be false if the value of $pk isn't a valid column name, so should be checked before looping, in Doctrine_Table:484
- '#Argument of an invalid type array\|false supplied for foreach, only iterables are supported\.#'
# Both of these don't specify a hydration mode, so a Doctrine_Collection should be returned by default, not an array
# Doctrine_Template_Geographical:114
- '#Cannot call method getFirst\(\) on array\|Doctrine_Collection\.#'
# Doctrine_Data_Export:91
- '#Cannot call method count\(\) on array\|Doctrine_Collection\.#'
# In Doctrine_Export_Pgsql:284, the type of $sql here could be a boolean (true) if the $check parameter is "true", this should
# probably be checked before looping (perhaps if $check === true, it just returns $sql?)
- '#Argument of an invalid type array\|true supplied for foreach, only iterables are supported\.#'
# This is mainly harmless, but the isset here could probably be removed. In Doctrine_Relation_Parser:225
- '#Variable \$rel in isset\(\) always exists and is not nullable\.#'
# In Doctrine_Connection_Statement:240 the default for the "$params" parameter should probably be changed to an empty array instead
# of null, there's also a truthy check on the param a bit later that would need to be modified to check if $params is empty
- '#Argument of an invalid type array\|null supplied for foreach, only iterables are supported\.#'
# I think overall this would need to be re-structured somehow in Doctrine. Currently Doctrine_Query_Abstract::__construct accepts
# a Doctrine_Hydrator_Abstract object (enforced via PHP typehint) as an optional parameter. If it's not set (is set to null)
# then the internal $_hydrator property is set to a new Doctrine_Hydrator object. Doctrine_Hydrator DOES NOT extend Doctrine_Hydrator_Abstract
# so they're not really the same thing. These methods are not found on Doctrine_Hydrate_Abstract (or any of its sub-classes), only
# on Doctrine_Hydrate. So it seems that if a custom hydrator was set on the Query object, it wouldn't work in places where
# these methods are called (unless implemented in the class itself, but there's no contract for that, so user may not know it doesn't
# work until runtime)
- '#Call to an undefined method Doctrine_Hydrator\|Doctrine_Hydrator_Abstract::getHydrationMode\(\)\.#'
- '#Call to an undefined method Doctrine_Hydrator\|Doctrine_Hydrator_Abstract::getHydratorDriverClassName\(\)\.#'
- '#Call to an undefined method Doctrine_Hydrator\|Doctrine_Hydrator_Abstract::getHydratorDriver\(\)\.#'
# These all have checks in place before they're called to make sure the object is not Doctrine_Null, in Doctrine_Record:1609|1610|1617
- '#Call to an undefined method Doctrine_Null\|Doctrine_Record::getTable\(\)\.#'
- '#Call to an undefined method Doctrine_Null\|Doctrine_Record::rawGet\(\)\.#'
- '#Call to an undefined method Doctrine_Null\|Doctrine_Record::set\(\)\.#'
# This one could send an int in a particular case where a different class property is set to a certain value, it must not be doing that
- '#Parameter \#1 \$stmt of method Doctrine_Hydrator::hydrateResultSet\(\) expects Doctrine_Adapter_Statement_Interface\|PDOStatement, Doctrine_Adapter_Statement_Interface\|int\|PDOStatement given\.#'
#########
# Level 7
#########
# The default value for this parameter should probably be changed to an empty array rather than null
# Called from Doctrine_Pager:504
- '#Parameter \#1 \$params of method Doctrine_Pager::setCountQueryParams\(\) expects array, array\|null given\.#'
# The $parent var could be null, but emitAddChild shouldn't accept that, as it calls strtolower on it directly. Probably need to cast or check for null
# in the caller. Doctrine_Import_Builder:805|815|825
- '#Parameter \#2 \$parent of method Doctrine_Import_Builder::emitAddChild\(\) expects string, string\|null given\.#'
# These are optional parameters in Doctrine_Connection_Statement::fetch, maybe should be cast to ints, or not set on the event if null?
- '#Property Doctrine_Event::\$cursorOffset \(int\) does not accept int\|null\.#'
- '#Property Doctrine_Event::\$columnIndex \(int\) does not accept int\|null\.#'
# Doctrine_Lib::arrayDeepMerge only returns false if called with no parameters
- '#Property Doctrine_Record_Listener_Chain::\$_options \(array\) does not accept array\|false\.#'
- '#Property Doctrine_Record_Listener::\$_options \(array\) does not accept array\|false\.#'
- '#Property Doctrine_AuditLog::\$_options \(array\) does not accept array\|false\.#'
- '#Property Doctrine_Template::\$_options \(array\) does not accept array\|false\.#'
- '#Property Doctrine_I18n::\$_options \(array\) does not accept array\|false\.#'
- '#Property Doctrine_Search::\$_options \(array\) does not accept array\|false\.#'
# Default value on the $notification parameter should probably be changed to an empty string instead of null (Doctrine_Cli_Formatter is set that way)
# in Doctrine_Cli:406
- '#Parameter \#1 \$text of method Doctrine_Cli_Formatter::format\(\) expects string, string\|null given\.#'
# Also should probably be changed to an empty string instead of null, Doctrine_Adapter_Mock:75
- '#Property Doctrine_Adapter_Mock::\$_name \(string\) does not accept string\|null\.#'
# The Doctrine_Record::state method will return an int if it's not given any parameters ($state param == null), otherwise it returns nothing (void)
# I checked that in all of the cases that phpstan complains about this method and returns from it, that they're being used properly (assigning
# a value when no params are passed, not expecting a value when a param is passed)
-
message: '#Parameter \#1 \$state of static method Doctrine_Lib::getRecordStateAsString\(\) expects int, int\|null given\.#'
count: 1
path: lib/Doctrine/Lib.php
# Probably change the else condition of the ternary here to an empty string instead of null, Doctrine_Query:1043
- '#Parameter \#1 \$alias of method Doctrine_Query::_processPendingJoinConditions\(\) expects string, string\|null given\.#'
# Same with this one, default for $alias should probably be an empty string, Doctrine_Table:1120
- '#Parameter \#1 \$alias of method Doctrine_Table::processOrderBy\(\) expects string, string\|null given\.#'
# Should change to empty string as default, Doctrine_Import_Schema:271
- '#Parameter \#1 \$path of method Doctrine_Import_Builder::setTargetPath\(\) expects string, string\|null given\.#'
# Another case where the default should probably be an empty string instead of null, Doctrine_Query_Abstract:1874
- '#Property Doctrine_Query_Abstract::\$_resultCacheHash \(string\) does not accept string\|null\.#'
# The Doctrine_Connection_Mssql::replaceBoundParamsWithInlineValuesInQuery method may return null if the preg_replace_callback
# function encounters an error, which would cause $query to be null. Not sure what do do in this error situation.
- '#Parameter \#1 \$query of method Doctrine_Connection::execute\(\) expects string, string\|null given\.#'
- '#Parameter \#1 \$query of method Doctrine_Connection::exec\(\) expects string, string\|null given\.#'
# These methods shouldn't return anything because it's a PHP magic method which is defined as a void return
# but we don't want to alter the behavior here in case anyone is actually using this method directly and expecting
# its return value
-
message: '#Method Doctrine_Event::__set\(\) with return type void returns \$this\(Doctrine_Event\) but should not return anything\.#'
count: 1
path: lib/Doctrine/Event.php
-
message: '#Method Doctrine_Validator_Driver::__set\(\) with return type void returns \$this\(Doctrine_Validator_Driver\) but should not return anything\.#'
count: 1
path: lib/Doctrine/Validator/Driver.php
################################################################################################################
# These are from the baseline generated by phpstan, but modified, so moved here so they don't change
# They've been modified to add differing function parameter names between php 7.x and php 8
# I think phpstan has a way to deal with this internally, but these probably have to be added via a PR
################################################################################################################
-
message: "#^Parameter \\#2 \\$(statement|sql) of function oci_parse expects string, string\\|null given\\.$#"
count: 1
path: lib/Doctrine/Adapter/Statement/Oracle.php
-
message: "#^Parameter \\#1 \\$(variable_representation|data) of function unserialize expects string, string\\|null given\\.$#"
count: 1
path: lib/Doctrine/Cache/Db.php
-
message: "#^Parameter \\#1 \\$(argument|objectOrClass) of class ReflectionClass constructor expects class\\-string\\<T of object\\>\\|T of object, string given\\.$#"
count: 1
path: lib/Doctrine/Cli.php
-
message: "#^Parameter \\#1 \\$(argument|objectOrClass) of class ReflectionClass constructor expects class\\-string\\<T of object\\>\\|T of object, string given\\.$#"
count: 1
path: lib/Doctrine/Import/Builder.php
-
message: "#^Parameter \\#1 \\$(argument|objectOrClass) of class ReflectionClass constructor expects class\\-string\\<T of object\\>\\|T of object, string given\\.$#"
count: 1
path: lib/Doctrine/Migration.php
-
message: "#^Parameter \\#1 \\$(input|array) of function array_slice expects array, array\\<int, string\\>\\|false given\\.$#"
count: 1
path: lib/Doctrine/Compiler.php
-
message: "#^Parameter \\#1 \\$(str|string) of function trim expects string, string\\|null given\\.$#"
count: 1
path: lib/Doctrine/Connection/Mssql.php
-
message: "#^Parameter \\#1 \\$(array_arg|array) of function end expects (array\\|object|array), array\\<int, string\\>\\|false given\\.$#"
count: 1
path: lib/Doctrine/Connection/Mssql.php
-
message: "#^Parameter \\#3 \\$length of function substr expects (int|int\\|null), int\\<0, max\\>\\|false given\\.$#"
count: 1
path: lib/Doctrine/Core.php
-
message: "#^Parameter \\#1 \\$(str|string) of function strtoupper expects string, string\\|null given\\.$#"
count: 1
path: lib/Doctrine/Export/Oracle.php
-
message: "#^Parameter \\#1 \\$(str|string) of function strtoupper expects string, string\\|null given\\.$#"
count: 2
path: lib/Doctrine/Import/Oracle.php
-
message: "#^Parameter \\#1 \\$(function|callback) of function call_user_func_array expects callable\\(\\)\\: mixed, array{string, string} given\\.$#"
count: 1
path: lib/Doctrine/Record.php
-
message: "#^Parameter \\#1 \\$(function|callback) of function call_user_func_array expects callable\\(\\)\\: mixed, array{mixed, string} given\\.$#"
count: 1
path: lib/Doctrine/Record.php
-
message: "#^Parameter \\#1 \\$(str|string) of function strtolower expects string, string\\|null given\\.$#"
count: 1
path: lib/Doctrine/Import/Sqlite.php
-
message: "#^Parameter \\#1 \\$(str|string) of function strtolower expects string, string\\|null given\\.$#"
count: 3
path: lib/Doctrine/Inflector.php
-
message: "#^Parameter \\#1 \\$(name|qualifiedName) of method SimpleXMLElement\\:\\:addChild\\(\\) expects string, string\\|null given\\.$#"
count: 2
path: lib/Doctrine/Parser/Xml.php
-
message: "#^Parameter \\#1 \\$(stack|array) of function array_shift expects array, array\\<int, string\\>\\|false given\\.$#"
count: 1
path: lib/Doctrine/Query.php
-
message: "#^Parameter \\#1 \\$(str|string) of function trim expects string, string\\|false given\\.$#"
count: 1
path: lib/Doctrine/Task.php