| Conditions | 1 | 
| Paths | 1 | 
| Total Lines | 227 | 
| Code Lines | 123 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 7 | ||
| Bugs | 3 | Features | 2 | 
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php  | 
            ||
| 127 | public function filterProvider()  | 
            ||
| 128 |     { | 
            ||
| 129 | $return = [];  | 
            ||
| 130 | |||
| 131 | // Classical where  | 
            ||
| 132 | $return[] = [  | 
            ||
| 133 | null,  | 
            ||
| 134 | '/api/dummies?filter[where][name]=test',  | 
            ||
| 135 | 'o.name = :name',  | 
            ||
| 136 | [  | 
            ||
| 137 | 'name' => 'test',  | 
            ||
| 138 | ],  | 
            ||
| 139 | ];  | 
            ||
| 140 | $return[] = [  | 
            ||
| 141 | null,  | 
            ||
| 142 | '/api/dummies?filter[where][unknown]=test',  | 
            ||
| 143 | '',  | 
            ||
| 144 | [],  | 
            ||
| 145 | ];  | 
            ||
| 146 | $return[] = [  | 
            ||
| 147 | null,  | 
            ||
| 148 | '/api/dummies?filter[yolo][name]=test',  | 
            ||
| 149 | '',  | 
            ||
| 150 | [],  | 
            ||
| 151 | ];  | 
            ||
| 152 | |||
| 153 | // Classical where on boolean  | 
            ||
| 154 | $return[] = [  | 
            ||
| 155 | null,  | 
            ||
| 156 | '/api/dummies?filter[where][isEnabled]=0',  | 
            ||
| 157 | 'o.isEnabled = :isEnabled',  | 
            ||
| 158 | [  | 
            ||
| 159 | 'isEnabled' => 0,  | 
            ||
| 160 | ],  | 
            ||
| 161 | ];  | 
            ||
| 162 | $return[] = [  | 
            ||
| 163 | null,  | 
            ||
| 164 | '/api/dummies?filter[where][isEnabled]=1',  | 
            ||
| 165 | 'o.isEnabled = :isEnabled',  | 
            ||
| 166 | [  | 
            ||
| 167 | 'isEnabled' => 1,  | 
            ||
| 168 | ],  | 
            ||
| 169 | ];  | 
            ||
| 170 | |||
| 171 | // Classical where on DateTime  | 
            ||
| 172 | //TODO: enable this test  | 
            ||
| 173 | // $return[] = [  | 
            ||
| 174 | // null,  | 
            ||
| 175 | // '/api/dummies?filter[where][isEnabled]=0',  | 
            ||
| 176 | // 'o.name = test'  | 
            ||
| 177 | // ];  | 
            ||
| 178 | // $return[] = [  | 
            ||
| 179 | // null,  | 
            ||
| 180 | // '/api/dummies?filter[where][isEnabled]=1',  | 
            ||
| 181 | // 'o.name = test'  | 
            ||
| 182 | // ];  | 
            ||
| 183 | |||
| 184 | // Null value / Not null  | 
            ||
| 185 | $return[] = [  | 
            ||
| 186 | null,  | 
            ||
| 187 | '/api/dummies?filter[where][name]=null',  | 
            ||
| 188 | 'o.name IS NULL',  | 
            ||
| 189 | ];  | 
            ||
| 190 | $return[] = [  | 
            ||
| 191 | null,  | 
            ||
| 192 | '/api/dummies?filter[where][name][neq]=null',  | 
            ||
| 193 | 'o.name IS NOT NULL',  | 
            ||
| 194 | ];  | 
            ||
| 195 | |||
| 196 | // Empty string value  | 
            ||
| 197 | $return[] = [  | 
            ||
| 198 | null,  | 
            ||
| 199 | '/api/dummies?filter[where][name]=',  | 
            ||
| 200 | 'o.name = :name',  | 
            ||
| 201 | [  | 
            ||
| 202 | 'name' => '',  | 
            ||
| 203 | ],  | 
            ||
| 204 | ];  | 
            ||
| 205 | $return[] = [  | 
            ||
| 206 | null,  | 
            ||
| 207 | '/api/dummies?filter[where][name][neq]=',  | 
            ||
| 208 | 'o.name <> :name',  | 
            ||
| 209 | [  | 
            ||
| 210 | 'name' => '',  | 
            ||
| 211 | ],  | 
            ||
| 212 | ];  | 
            ||
| 213 | |||
| 214 | // Empty integer value  | 
            ||
| 215 | $return[] = [  | 
            ||
| 216 | null,  | 
            ||
| 217 | '/api/dummies?filter[where][price]=',  | 
            ||
| 218 | 'o.price = :price',  | 
            ||
| 219 | [  | 
            ||
| 220 | 'price' => '',  | 
            ||
| 221 | ],  | 
            ||
| 222 | ];  | 
            ||
| 223 | $return[] = [  | 
            ||
| 224 | null,  | 
            ||
| 225 | '/api/dummies?filter[where][price][neq]=',  | 
            ||
| 226 | 'o.price <> :price',  | 
            ||
| 227 | [  | 
            ||
| 228 | 'price' => '',  | 
            ||
| 229 | ],  | 
            ||
| 230 | ];  | 
            ||
| 231 | |||
| 232 | // Empty boolean value  | 
            ||
| 233 | $return[] = [  | 
            ||
| 234 | null,  | 
            ||
| 235 | '/api/dummies?filter[where][isEnabled]=',  | 
            ||
| 236 | 'o.isEnabled = :isEnabled',  | 
            ||
| 237 | [  | 
            ||
| 238 | 'isEnabled' => '',  | 
            ||
| 239 | ],  | 
            ||
| 240 | ];  | 
            ||
| 241 | $return[] = [  | 
            ||
| 242 | null,  | 
            ||
| 243 | '/api/dummies?filter[where][isEnabled][neq]=',  | 
            ||
| 244 | 'o.isEnabled <> :isEnabled',  | 
            ||
| 245 | [  | 
            ||
| 246 | 'isEnabled' => '',  | 
            ||
| 247 | ],  | 
            ||
| 248 | ];  | 
            ||
| 249 | |||
| 250 | // gt(e)/lt(e) operator  | 
            ||
| 251 | $return[] = [  | 
            ||
| 252 | null,  | 
            ||
| 253 | '/api/dummies?filter[where][price][gt]=40',  | 
            ||
| 254 | 'o.price > :price',  | 
            ||
| 255 | [  | 
            ||
| 256 | 'price' => 40,  | 
            ||
| 257 | ],  | 
            ||
| 258 | ];  | 
            ||
| 259 | $return[] = [  | 
            ||
| 260 | null,  | 
            ||
| 261 | '/api/dummies?filter[where][price][gte]=40',  | 
            ||
| 262 | 'o.price >= :price',  | 
            ||
| 263 | [  | 
            ||
| 264 | 'price' => 40,  | 
            ||
| 265 | ],  | 
            ||
| 266 | ];  | 
            ||
| 267 | $return[] = [  | 
            ||
| 268 | null,  | 
            ||
| 269 | '/api/dummies?filter[where][price][lt]=40',  | 
            ||
| 270 | 'o.price < :price',  | 
            ||
| 271 | [  | 
            ||
| 272 | 'price' => 40,  | 
            ||
| 273 | ],  | 
            ||
| 274 | ];  | 
            ||
| 275 | $return[] = [  | 
            ||
| 276 | null,  | 
            ||
| 277 | '/api/dummies?filter[where][price][lte]=40',  | 
            ||
| 278 | 'o.price <= :price',  | 
            ||
| 279 | [  | 
            ||
| 280 | 'price' => 40,  | 
            ||
| 281 | ],  | 
            ||
| 282 | ];  | 
            ||
| 283 | |||
| 284 | // Between operator  | 
            ||
| 285 | $return[] = [  | 
            ||
| 286 | null,  | 
            ||
| 287 | '/api/dummies?filter[where][price][between][0]=0&filter[where][price][between][1]=7',  | 
            ||
| 288 | 'o.price BETWEEN :between_before_price AND :between_after_price',  | 
            ||
| 289 | [  | 
            ||
| 290 | 'between_before_price' => 0,  | 
            ||
| 291 | 'between_after_price' => 7,  | 
            ||
| 292 | ],  | 
            ||
| 293 | ];  | 
            ||
| 294 | |||
| 295 | // (n)like operator  | 
            ||
| 296 | $return[] = [  | 
            ||
| 297 | null,  | 
            ||
| 298 | '/api/dummies?filter[where][name][like]=test',  | 
            ||
| 299 | 'o.name LIKE :name',  | 
            ||
| 300 | [  | 
            ||
| 301 | 'name' => '%test%',  | 
            ||
| 302 | ],  | 
            ||
| 303 | ];  | 
            ||
| 304 | $return[] = [  | 
            ||
| 305 | null,  | 
            ||
| 306 | '/api/dummies?filter[where][name][nlike]=test',  | 
            ||
| 307 | 'o.name NOT LIKE :name',  | 
            ||
| 308 | [  | 
            ||
| 309 | 'name' => '%test%',  | 
            ||
| 310 | ],  | 
            ||
| 311 | ];  | 
            ||
| 312 | |||
| 313 | //  | 
            ||
| 314 | // Or operator  | 
            ||
| 315 | $return[] = [  | 
            ||
| 316 | null,  | 
            ||
| 317 | '/api/dummies?filter[where][or][0][][name]=test&filter[where][or][0][][price]=20',  | 
            ||
| 318 | 'o.name = :or_name00 OR o.price = :or_price01',  | 
            ||
| 319 | [  | 
            ||
| 320 | 'or_name00' => 'test',  | 
            ||
| 321 | 'or_price01' => 20,  | 
            ||
| 322 | ],  | 
            ||
| 323 | ];  | 
            ||
| 324 | $return[] = [  | 
            ||
| 325 | null,  | 
            ||
| 326 | '/api/dummies?filter[where][or][0][][name][neq]=null&filter[where][or][0][][price]=20',  | 
            ||
| 327 | 'o.name IS NOT NULL OR o.price = :or_price01',  | 
            ||
| 328 | [  | 
            ||
| 329 | 'or_price01' => 20,  | 
            ||
| 330 | ],  | 
            ||
| 331 | ];  | 
            ||
| 332 | $return[] = [  | 
            ||
| 333 | null,  | 
            ||
| 334 | '/api/dummies?filter[where][or][0][][name]=test&filter[where][or][0][][name]=pol&filter[where][or][1][][price]=20&filter[where][or][1][][name]=toto',  | 
            ||
| 335 | '(o.name = :or_name00 OR o.name = :or_name01) AND (o.price = :or_price10 OR o.name = :or_name11)',  | 
            ||
| 336 | [  | 
            ||
| 337 | 'or_name00' => 'test',  | 
            ||
| 338 | 'or_name01' => 'pol',  | 
            ||
| 339 | 'or_price10' => 20,  | 
            ||
| 340 | 'or_name11' => 'toto',  | 
            ||
| 341 | ],  | 
            ||
| 342 | ];  | 
            ||
| 343 | $return[] = [  | 
            ||
| 344 | null,  | 
            ||
| 345 | '/api/dummies?filter[where][or][0][name]=test&filter[where][or][0][][price]=20',  | 
            ||
| 346 | '',  | 
            ||
| 347 | [],  | 
            ||
| 348 | ];  | 
            ||
| 349 | |||
| 350 | //TODO: test the config  | 
            ||
| 351 | |||
| 352 | return $return;  | 
            ||
| 353 | }  | 
            ||
| 354 | }  | 
            ||
| 355 | 
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: