Completed
Push — feature/rename-phpunit-config ( 357a24...3649e1 )
by Juliette
03:31 queued 01:25
created

DeprecatedFunctionsSniff   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 835
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 2
dl 0
loc 835
rs 9.7391
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 8 1
B process() 0 34 3
A getItemArray() 0 4 1
1
<?php
2
/**
3
 * \PHPCompatibility\Sniffs\PHP\DeprecatedFunctionsSniff.
4
 *
5
 * @category PHP
6
 * @package  PHPCompatibility
7
 * @author   Wim Godden <[email protected]>
8
 */
9
10
namespace PHPCompatibility\Sniffs\PHP;
11
12
use PHPCompatibility\AbstractRemovedFeatureSniff;
13
14
/**
15
 * \PHPCompatibility\Sniffs\PHP\DeprecatedFunctionsSniff.
16
 *
17
 * @category PHP
18
 * @package  PHPCompatibility
19
 * @author   Wim Godden <[email protected]>
20
 */
21
class DeprecatedFunctionsSniff extends AbstractRemovedFeatureSniff
22
{
23
    /**
24
     * A list of deprecated and removed functions with their alternatives.
25
     *
26
     * The array lists : version number with false (deprecated) or true (removed) and an alternative function.
27
     * If no alternative exists, it is NULL, i.e, the function should just not be used.
28
     *
29
     * @var array(string => array(string => bool|string|null))
30
     */
31
    protected $removedFunctions = array(
32
        'php_check_syntax' => array(
33
            '5.0.5' => true,
34
            'alternative' => null,
35
        ),
36
        'call_user_method' => array(
37
            '5.3' => false,
38
            '5.4' => false,
39
            '5.5' => false,
40
            '5.6' => false,
41
            '7.0' => true,
42
            'alternative' => 'call_user_func',
43
        ),
44
        'call_user_method_array' => array(
45
            '5.3' => false,
46
            '5.4' => false,
47
            '5.5' => false,
48
            '5.6' => false,
49
            '7.0' => true,
50
            'alternative' => 'call_user_func_array',
51
        ),
52
        'define_syslog_variables' => array(
53
            '5.3' => false,
54
            '5.4' => true,
55
            '5.5' => true,
56
            '5.6' => true,
57
            'alternative' => null,
58
        ),
59
        'dl' => array(
60
            '5.3' => false,
61
            '5.4' => false,
62
            '5.5' => false,
63
            '5.6' => false,
64
            'alternative' => null,
65
        ),
66
        'ereg' => array(
67
            '5.3' => false,
68
            '5.4' => false,
69
            '5.5' => false,
70
            '5.6' => false,
71
            '7.0' => true,
72
            'alternative' => 'preg_match',
73
        ),
74
        'ereg_replace' => array(
75
            '5.3' => false,
76
            '5.4' => false,
77
            '5.5' => false,
78
            '5.6' => false,
79
            '7.0' => true,
80
            'alternative' => 'preg_replace',
81
        ),
82
        'eregi' => array(
83
            '5.3' => false,
84
            '5.4' => false,
85
            '5.5' => false,
86
            '5.6' => false,
87
            '7.0' => true,
88
            'alternative' => 'preg_match',
89
        ),
90
        'eregi_replace' => array(
91
            '5.3' => false,
92
            '5.4' => false,
93
            '5.5' => false,
94
            '5.6' => false,
95
            '7.0' => true,
96
            'alternative' => 'preg_replace',
97
        ),
98
        'imagepsbbox' => array(
99
            '7.0' => true,
100
            'alternative' => null,
101
        ),
102
        'imagepsencodefont' => array(
103
            '7.0' => true,
104
            'alternative' => null,
105
        ),
106
        'imagepsextendfont' => array(
107
            '7.0' => true,
108
            'alternative' => null,
109
        ),
110
        'imagepsfreefont' => array(
111
            '7.0' => true,
112
            'alternative' => null,
113
        ),
114
        'imagepsloadfont' => array(
115
            '7.0' => true,
116
            'alternative' => null,
117
        ),
118
        'imagepsslantfont' => array(
119
            '7.0' => true,
120
            'alternative' => null,
121
        ),
122
        'imagepstext' => array(
123
            '7.0' => true,
124
            'alternative' => null,
125
        ),
126
        'import_request_variables' => array(
127
            '5.3' => false,
128
            '5.4' => true,
129
            'alternative' => null,
130
        ),
131
        'ldap_sort' => array(
132
            '7.0' => false,
133
            'alternative' => null,
134
        ),
135
        'mcrypt_generic_end' => array(
136
            '5.4' => false,
137
            '5.5' => false,
138
            '5.6' => false,
139
            '7.0' => true,
140
            'alternative' => 'mcrypt_generic_deinit',
141
        ),
142
        'mysql_db_query' => array(
143
            '5.3' => false,
144
            '5.4' => false,
145
            '5.5' => false,
146
            '5.6' => false,
147
            '7.0' => true,
148
            'alternative' => 'mysqli_select_db and mysqli_query',
149
        ),
150
        'mysql_escape_string' => array(
151
            '5.3' => false,
152
            '5.4' => false,
153
            '5.5' => false,
154
            '5.6' => false,
155
            '7.0' => true,
156
            'alternative' => 'mysqli_real_escape_string',
157
        ),
158
        'mysql_list_dbs' => array(
159
            '5.4' => false,
160
            '5.5' => false,
161
            '5.6' => false,
162
            '7.0' => true,
163
            'alternative' => null,
164
        ),
165
        'mysqli_bind_param' => array(
166
            '5.3' => false,
167
            '5.4' => true,
168
            '5.5' => true,
169
            '5.6' => true,
170
            'alternative' => 'mysqli_stmt_bind_param',
171
        ),
172
        'mysqli_bind_result' => array(
173
            '5.3' => false,
174
            '5.4' => true,
175
            '5.5' => true,
176
            '5.6' => true,
177
            'alternative' => 'mysqli_stmt_bind_result',
178
        ),
179
        'mysqli_client_encoding' => array(
180
            '5.3' => false,
181
            '5.4' => true,
182
            '5.5' => true,
183
            '5.6' => true,
184
            'alternative' => 'mysqli_character_set_name',
185
        ),
186
        'mysqli_fetch' => array(
187
            '5.3' => false,
188
            '5.4' => true,
189
            '5.5' => true,
190
            '5.6' => true,
191
            'alternative' => 'mysqli_stmt_fetch',
192
        ),
193
        'mysqli_param_count' => array(
194
            '5.3' => false,
195
            '5.4' => true,
196
            '5.5' => true,
197
            '5.6' => true,
198
            'alternative' => 'mysqli_stmt_param_count',
199
        ),
200
        'mysqli_get_metadata' => array(
201
            '5.3' => false,
202
            '5.4' => true,
203
            '5.5' => true,
204
            '5.6' => true,
205
            'alternative' => 'mysqli_stmt_result_metadata',
206
        ),
207
        'mysqli_send_long_data' => array(
208
            '5.3' => false,
209
            '5.4' => true,
210
            '5.5' => true,
211
            '5.6' => true,
212
            'alternative' => 'mysqli_stmt_send_long_data',
213
        ),
214
        'magic_quotes_runtime' => array(
215
            '5.3' => false,
216
            '5.4' => false,
217
            '5.5' => false,
218
            '5.6' => false,
219
            '7.0' => true,
220
            'alternative' => null,
221
        ),
222
        'session_register' => array(
223
            '5.3' => false,
224
            '5.4' => true,
225
            '5.5' => true,
226
            '5.6' => true,
227
            'alternative' => '$_SESSION',
228
        ),
229
        'session_unregister' => array(
230
            '5.3' => false,
231
            '5.4' => true,
232
            '5.5' => true,
233
            '5.6' => true,
234
            'alternative' => '$_SESSION',
235
        ),
236
        'session_is_registered' => array(
237
            '5.3' => false,
238
            '5.4' => true,
239
            '5.5' => true,
240
            '5.6' => true,
241
            'alternative' => '$_SESSION',
242
        ),
243
        'set_magic_quotes_runtime' => array(
244
            '5.3' => false,
245
            '5.4' => false,
246
            '5.5' => false,
247
            '5.6' => false,
248
            '7.0' => true,
249
            'alternative' => null,
250
        ),
251
        'set_socket_blocking' => array(
252
            '5.3' => false,
253
            '5.4' => false,
254
            '5.5' => false,
255
            '5.6' => false,
256
            '7.0' => true,
257
            'alternative' => 'stream_set_blocking',
258
        ),
259
        'split' => array(
260
            '5.3' => false,
261
            '5.4' => false,
262
            '5.5' => false,
263
            '5.6' => false,
264
            '7.0' => true,
265
            'alternative' => 'preg_split',
266
        ),
267
        'spliti' => array(
268
            '5.3' => false,
269
            '5.4' => false,
270
            '5.5' => false,
271
            '5.6' => false,
272
            '7.0' => true,
273
            'alternative' => 'preg_split',
274
        ),
275
        'sql_regcase' => array(
276
            '5.3' => false,
277
            '5.4' => false,
278
            '5.5' => false,
279
            '5.6' => false,
280
            '7.0' => true,
281
            'alternative' => null,
282
        ),
283
        'php_logo_guid' => array(
284
            '5.5' => true,
285
            '5.6' => true,
286
            'alternative' => null,
287
        ),
288
        'php_egg_logo_guid' => array(
289
            '5.5' => true,
290
            '5.6' => true,
291
            'alternative' => null,
292
        ),
293
        'php_real_logo_guid' => array(
294
            '5.5' => true,
295
            '5.6' => true,
296
            'alternative' => null,
297
        ),
298
        'zend_logo_guid' => array(
299
            '5.5' => true,
300
            '5.6' => true,
301
            'alternative' => null,
302
        ),
303
        'datefmt_set_timezone_id' => array(
304
            '5.5' => false,
305
            '5.6' => false,
306
            '7.0' => true,
307
            'alternative' => 'datefmt_set_timezone',
308
        ),
309
        'mcrypt_ecb' => array(
310
            '5.5' => false,
311
            '5.6' => false,
312
            '7.0' => true,
313
            'alternative' => null,
314
        ),
315
        'mcrypt_cbc' => array(
316
            '5.5' => false,
317
            '5.6' => false,
318
            '7.0' => true,
319
            'alternative' => null,
320
        ),
321
        'mcrypt_cfb' => array(
322
            '5.5' => false,
323
            '5.6' => false,
324
            '7.0' => true,
325
            'alternative' => null,
326
        ),
327
        'mcrypt_ofb' => array(
328
            '5.5' => false,
329
            '5.6' => false,
330
            '7.0' => true,
331
            'alternative' => null,
332
        ),
333
        'ocibindbyname' => array(
334
            '5.4' => false,
335
            '5.5' => false,
336
            '5.6' => false,
337
            'alternative' => 'oci_bind_by_name',
338
        ),
339
        'ocicancel' => array(
340
            '5.4' => false,
341
            '5.5' => false,
342
            '5.6' => false,
343
            'alternative' => 'oci_cancel',
344
        ),
345
        'ocicloselob' => array(
346
            '5.4' => false,
347
            '5.5' => false,
348
            '5.6' => false,
349
            'alternative' => 'OCI-Lob::close',
350
        ),
351
        'ocicollappend' => array(
352
            '5.4' => false,
353
            '5.5' => false,
354
            '5.6' => false,
355
            'alternative' => 'OCI-Collection::append',
356
        ),
357
        'ocicollassign' => array(
358
            '5.4' => false,
359
            '5.5' => false,
360
            '5.6' => false,
361
            'alternative' => 'OCI-Collection::assign',
362
        ),
363
        'ocicollassignelem' => array(
364
            '5.4' => false,
365
            '5.5' => false,
366
            '5.6' => false,
367
            'alternative' => 'OCI-Collection::assignElem',
368
        ),
369
        'ocicollgetelem' => array(
370
            '5.4' => false,
371
            '5.5' => false,
372
            '5.6' => false,
373
            'alternative' => 'OCI-Collection::getElem',
374
        ),
375
        'ocicollmax' => array(
376
            '5.4' => false,
377
            '5.5' => false,
378
            '5.6' => false,
379
            'alternative' => 'OCI-Collection::max',
380
        ),
381
        'ocicollsize' => array(
382
            '5.4' => false,
383
            '5.5' => false,
384
            '5.6' => false,
385
            'alternative' => 'OCI-Collection::size',
386
        ),
387
        'ocicolltrim' => array(
388
            '5.4' => false,
389
            '5.5' => false,
390
            '5.6' => false,
391
            'alternative' => 'OCI-Collection::trim',
392
        ),
393
        'ocicolumnisnull' => array(
394
            '5.4' => false,
395
            '5.5' => false,
396
            '5.6' => false,
397
            'alternative' => 'oci_field_is_null',
398
        ),
399
        'ocicolumnname' => array(
400
            '5.4' => false,
401
            '5.5' => false,
402
            '5.6' => false,
403
            'alternative' => 'oci_field_name',
404
        ),
405
        'ocicolumnprecision' => array(
406
            '5.4' => false,
407
            '5.5' => false,
408
            '5.6' => false,
409
            'alternative' => 'oci_field_precision',
410
        ),
411
        'ocicolumnscale' => array(
412
            '5.4' => false,
413
            '5.5' => false,
414
            '5.6' => false,
415
            'alternative' => 'oci_field_scale',
416
        ),
417
        'ocicolumnsize' => array(
418
            '5.4' => false,
419
            '5.5' => false,
420
            '5.6' => false,
421
            'alternative' => 'oci_field_size',
422
        ),
423
        'ocicolumntype' => array(
424
            '5.4' => false,
425
            '5.5' => false,
426
            '5.6' => false,
427
            'alternative' => 'oci_field_type',
428
        ),
429
        'ocicolumntyperaw' => array(
430
            '5.4' => false,
431
            '5.5' => false,
432
            '5.6' => false,
433
            'alternative' => 'oci_field_type_raw',
434
        ),
435
        'ocicommit' => array(
436
            '5.4' => false,
437
            '5.5' => false,
438
            '5.6' => false,
439
            'alternative' => 'oci_commit',
440
        ),
441
        'ocidefinebyname' => array(
442
            '5.4' => false,
443
            '5.5' => false,
444
            '5.6' => false,
445
            'alternative' => 'oci_define_by_name',
446
        ),
447
        'ocierror' => array(
448
            '5.4' => false,
449
            '5.5' => false,
450
            '5.6' => false,
451
            'alternative' => 'oci_error',
452
        ),
453
        'ociexecute' => array(
454
            '5.4' => false,
455
            '5.5' => false,
456
            '5.6' => false,
457
            'alternative' => 'oci_execute',
458
        ),
459
        'ocifetch' => array(
460
            '5.4' => false,
461
            '5.5' => false,
462
            '5.6' => false,
463
            'alternative' => 'oci_fetch',
464
        ),
465
        'ocifetchinto' => array(
466
            '5.4' => false,
467
            '5.5' => false,
468
            '5.6' => false,
469
            'alternative' => null,
470
        ),
471
        'ocifetchstatement' => array(
472
            '5.4' => false,
473
            '5.5' => false,
474
            '5.6' => false,
475
            'alternative' => 'oci_fetch_all',
476
        ),
477
        'ocifreecollection' => array(
478
            '5.4' => false,
479
            '5.5' => false,
480
            '5.6' => false,
481
            'alternative' => 'OCI-Collection::free',
482
        ),
483
        'ocifreecursor' => array(
484
            '5.4' => false,
485
            '5.5' => false,
486
            '5.6' => false,
487
            'alternative' => 'oci_free_statement',
488
        ),
489
        'ocifreedesc' => array(
490
            '5.4' => false,
491
            '5.5' => false,
492
            '5.6' => false,
493
            'alternative' => 'OCI-Lob::free',
494
        ),
495
        'ocifreestatement' => array(
496
            '5.4' => false,
497
            '5.5' => false,
498
            '5.6' => false,
499
            'alternative' => 'oci_free_statement',
500
        ),
501
        'ociinternaldebug' => array(
502
            '5.4' => false,
503
            '5.5' => false,
504
            '5.6' => false,
505
            'alternative' => 'oci_internal_debug',
506
        ),
507
        'ociloadlob' => array(
508
            '5.4' => false,
509
            '5.5' => false,
510
            '5.6' => false,
511
            'alternative' => 'OCI-Lob::load',
512
        ),
513
        'ocilogoff' => array(
514
            '5.4' => false,
515
            '5.5' => false,
516
            '5.6' => false,
517
            'alternative' => 'oci_close',
518
        ),
519
        'ocilogon' => array(
520
            '5.4' => false,
521
            '5.5' => false,
522
            '5.6' => false,
523
            'alternative' => 'oci_connect',
524
        ),
525
        'ocinewcollection' => array(
526
            '5.4' => false,
527
            '5.5' => false,
528
            '5.6' => false,
529
            'alternative' => 'oci_new_collection',
530
        ),
531
        'ocinewcursor' => array(
532
            '5.4' => false,
533
            '5.5' => false,
534
            '5.6' => false,
535
            'alternative' => 'oci_new_cursor',
536
        ),
537
        'ocinewdescriptor' => array(
538
            '5.4' => false,
539
            '5.5' => false,
540
            '5.6' => false,
541
            'alternative' => 'oci_new_descriptor',
542
        ),
543
        'ocinlogon' => array(
544
            '5.4' => false,
545
            '5.5' => false,
546
            '5.6' => false,
547
            'alternative' => 'oci_new_connect',
548
        ),
549
        'ocinumcols' => array(
550
            '5.4' => false,
551
            '5.5' => false,
552
            '5.6' => false,
553
            'alternative' => 'oci_num_fields',
554
        ),
555
        'ociparse' => array(
556
            '5.4' => false,
557
            '5.5' => false,
558
            '5.6' => false,
559
            'alternative' => 'oci_parse',
560
        ),
561
        'ociplogon' => array(
562
            '5.4' => false,
563
            '5.5' => false,
564
            '5.6' => false,
565
            'alternative' => 'oci_pconnect',
566
        ),
567
        'ociresult' => array(
568
            '5.4' => false,
569
            '5.5' => false,
570
            '5.6' => false,
571
            'alternative' => 'oci_result',
572
        ),
573
        'ocirollback' => array(
574
            '5.4' => false,
575
            '5.5' => false,
576
            '5.6' => false,
577
            'alternative' => 'oci_rollback',
578
        ),
579
        'ocirowcount' => array(
580
            '5.4' => false,
581
            '5.5' => false,
582
            '5.6' => false,
583
            'alternative' => 'oci_num_rows',
584
        ),
585
        'ocisavelob' => array(
586
            '5.4' => false,
587
            '5.5' => false,
588
            '5.6' => false,
589
            'alternative' => 'OCI-Lob::save',
590
        ),
591
        'ocisavelobfile' => array(
592
            '5.4' => false,
593
            '5.5' => false,
594
            '5.6' => false,
595
            'alternative' => 'OCI-Lob::import',
596
        ),
597
        'ociserverversion' => array(
598
            '5.4' => false,
599
            '5.5' => false,
600
            '5.6' => false,
601
            'alternative' => 'oci_server_version',
602
        ),
603
        'ocisetprefetch' => array(
604
            '5.4' => false,
605
            '5.5' => false,
606
            '5.6' => false,
607
            'alternative' => 'oci_set_prefetch',
608
        ),
609
        'ocistatementtype' => array(
610
            '5.4' => false,
611
            '5.5' => false,
612
            '5.6' => false,
613
            'alternative' => 'oci_statement_type',
614
        ),
615
        'ociwritelobtofile' => array(
616
            '5.4' => false,
617
            '5.5' => false,
618
            '5.6' => false,
619
            'alternative' => 'OCI-Lob::export',
620
        ),
621
        'ociwritetemporarylob' => array(
622
            '5.4' => false,
623
            '5.5' => false,
624
            '5.6' => false,
625
            'alternative' => 'OCI-Lob::writeTemporary',
626
        ),
627
        'mysqli_get_cache_stats' => array(
628
            '5.4' => true,
629
            'alternative' => null,
630
        ),
631
632
        'mcrypt_create_iv' => array(
633
            '7.1' => false,
634
            'alternative' => 'OpenSSL',
635
        ),
636
        'mcrypt_decrypt' => array(
637
            '7.1' => false,
638
            'alternative' => 'OpenSSL',
639
        ),
640
        'mcrypt_enc_get_algorithms_name' => array(
641
            '7.1' => false,
642
            'alternative' => 'OpenSSL',
643
        ),
644
        'mcrypt_enc_get_block_size' => array(
645
            '7.1' => false,
646
            'alternative' => 'OpenSSL',
647
        ),
648
        'mcrypt_enc_get_iv_size' => array(
649
            '7.1' => false,
650
            'alternative' => 'OpenSSL',
651
        ),
652
        'mcrypt_enc_get_key_size' => array(
653
            '7.1' => false,
654
            'alternative' => 'OpenSSL',
655
        ),
656
        'mcrypt_enc_get_modes_name' => array(
657
            '7.1' => false,
658
            'alternative' => 'OpenSSL',
659
        ),
660
        'mcrypt_enc_get_supported_key_sizes' => array(
661
            '7.1' => false,
662
            'alternative' => 'OpenSSL',
663
        ),
664
        'mcrypt_enc_is_block_algorithm_mode' => array(
665
            '7.1' => false,
666
            'alternative' => 'OpenSSL',
667
        ),
668
        'mcrypt_enc_is_block_algorithm' => array(
669
            '7.1' => false,
670
            'alternative' => 'OpenSSL',
671
        ),
672
        'mcrypt_enc_is_block_mode' => array(
673
            '7.1' => false,
674
            'alternative' => 'OpenSSL',
675
        ),
676
        'mcrypt_enc_self_test' => array(
677
            '7.1' => false,
678
            'alternative' => 'OpenSSL',
679
        ),
680
        'mcrypt_encrypt' => array(
681
            '7.1' => false,
682
            'alternative' => 'OpenSSL',
683
        ),
684
        'mcrypt_generic_deinit' => array(
685
            '7.1' => false,
686
            'alternative' => 'OpenSSL',
687
        ),
688
        'mcrypt_generic_init' => array(
689
            '7.1' => false,
690
            'alternative' => 'OpenSSL',
691
        ),
692
        'mcrypt_generic' => array(
693
            '7.1' => false,
694
            'alternative' => 'OpenSSL',
695
        ),
696
        'mcrypt_get_block_size' => array(
697
            '7.1' => false,
698
            'alternative' => 'OpenSSL',
699
        ),
700
        'mcrypt_get_cipher_name' => array(
701
            '7.1' => false,
702
            'alternative' => 'OpenSSL',
703
        ),
704
        'mcrypt_get_iv_size' => array(
705
            '7.1' => false,
706
            'alternative' => 'OpenSSL',
707
        ),
708
        'mcrypt_get_key_size' => array(
709
            '7.1' => false,
710
            'alternative' => 'OpenSSL',
711
        ),
712
        'mcrypt_list_algorithms' => array(
713
            '7.1' => false,
714
            'alternative' => 'OpenSSL',
715
        ),
716
        'mcrypt_list_modes' => array(
717
            '7.1' => false,
718
            'alternative' => 'OpenSSL',
719
        ),
720
        'mcrypt_module_close' => array(
721
            '7.1' => false,
722
            'alternative' => 'OpenSSL',
723
        ),
724
        'mcrypt_module_get_algo_block_size' => array(
725
            '7.1' => false,
726
            'alternative' => 'OpenSSL',
727
        ),
728
        'mcrypt_module_get_algo_key_size' => array(
729
            '7.1' => false,
730
            'alternative' => 'OpenSSL',
731
        ),
732
        'mcrypt_module_get_supported_key_sizes' => array(
733
            '7.1' => false,
734
            'alternative' => 'OpenSSL',
735
        ),
736
        'mcrypt_module_is_block_algorithm_mode' => array(
737
            '7.1' => false,
738
            'alternative' => 'OpenSSL',
739
        ),
740
        'mcrypt_module_is_block_algorithm' => array(
741
            '7.1' => false,
742
            'alternative' => 'OpenSSL',
743
        ),
744
        'mcrypt_module_is_block_mode' => array(
745
            '7.1' => false,
746
            'alternative' => 'OpenSSL',
747
        ),
748
        'mcrypt_module_open' => array(
749
            '7.1' => false,
750
            'alternative' => 'OpenSSL',
751
        ),
752
        'mcrypt_module_self_test' => array(
753
            '7.1' => false,
754
            'alternative' => 'OpenSSL',
755
        ),
756
        'mdecrypt_generic' => array(
757
            '7.1' => false,
758
            'alternative' => 'OpenSSL',
759
        ),
760
        'jpeg2wbmp' => array(
761
            '7.2' => false,
762
            'alternative' => 'imagecreatefromjpeg() and imagewbmp()',
763
        ),
764
        'png2wbmp' => array(
765
            '7.2' => false,
766
            'alternative' => 'imagecreatefrompng() or imagewbmp()',
767
        ),
768
    );
769
770
771
    /**
772
     * Returns an array of tokens this test wants to listen for.
773
     *
774
     * @return array
775
     */
776
    public function register()
777
    {
778
        // Handle case-insensitivity of function names.
779
        $this->removedFunctions = $this->arrayKeysToLowercase($this->removedFunctions);
780
781
        return array(T_STRING);
782
783
    }//end register()
784
785
786
    /**
787
     * Processes this test, when one of its tokens is encountered.
788
     *
789
     * @param \PHP_CodeSniffer_File $phpcsFile The file being scanned.
790
     * @param int                   $stackPtr  The position of the current token in
791
     *                                         the stack passed in $tokens.
792
     *
793
     * @return void
794
     */
795
    public function process(\PHP_CodeSniffer_File $phpcsFile, $stackPtr)
796
    {
797
        $tokens = $phpcsFile->getTokens();
798
799
        $ignore = array(
800
            T_DOUBLE_COLON,
801
            T_OBJECT_OPERATOR,
802
            T_FUNCTION,
803
            T_CLASS,
804
            T_CONST,
805
            T_USE,
806
            T_NS_SEPARATOR,
807
        );
808
809
        $prevToken = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true);
810
        if (in_array($tokens[$prevToken]['code'], $ignore) === true) {
811
            // Not a call to a PHP function.
812
            return;
813
        }
814
815
        $function   = $tokens[$stackPtr]['content'];
816
        $functionLc = strtolower($function);
817
818
        if (isset($this->removedFunctions[$functionLc]) === false) {
819
            return;
820
        }
821
822
        $itemInfo = array(
823
            'name'   => $function,
824
            'nameLc' => $functionLc,
825
        );
826
        $this->handleFeature($phpcsFile, $stackPtr, $itemInfo);
827
828
    }//end process()
829
830
831
    /**
832
     * Get the relevant sub-array for a specific item from a multi-dimensional array.
833
     *
834
     * @param array $itemInfo Base information about the item.
835
     *
836
     * @return array Version and other information about the item.
837
     */
838
    public function getItemArray(array $itemInfo)
839
    {
840
        return $this->removedFunctions[$itemInfo['nameLc']];
841
    }
842
843
844
    /**
845
     * Get the error message template for this sniff.
846
     *
847
     * @return string
848
     */
849
    protected function getErrorMsgTemplate()
850
    {
851
        return 'Function %s() is ';
852
    }
853
854
855
}//end class
856