NewFunctionsSniff   B
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 1796
Duplicated Lines 0.45 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 1
dl 8
loc 1796
rs 8.8
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 8 1
A getItemArray() 0 4 1
A getErrorMsgTemplate() 0 4 1
A process() 8 35 5

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
/**
3
 * \PHPCompatibility\Sniffs\PHP\NewFunctionsSniff.
4
 *
5
 * @category PHP
6
 * @package  PHPCompatibility
7
 * @author   Wim Godden <[email protected]>
8
 */
9
10
namespace PHPCompatibility\Sniffs\PHP;
11
12
use PHPCompatibility\AbstractNewFeatureSniff;
13
14
/**
15
 * \PHPCompatibility\Sniffs\PHP\newFunctionsSniff.
16
 *
17
 * @category PHP
18
 * @package  PHPCompatibility
19
 * @author   Wim Godden <[email protected]>
20
 */
21
class NewFunctionsSniff extends AbstractNewFeatureSniff
22
{
23
    /**
24
     * A list of new functions, not present in older versions.
25
     *
26
     * The array lists : version number with false (not present) or true (present).
27
     * If's sufficient to list the first version where the function appears.
28
     *
29
     * @var array(string => array(string => int|string|null))
30
     */
31
    protected $newFunctions = array(
32
        'iterator_count' => array(
33
            '5.0' => false,
34
            '5.1' => true,
35
        ),
36
        'iterator_to_array' => array(
37
            '5.0' => false,
38
            '5.1' => true,
39
        ),
40
        'spl_autoload_call' => array(
41
            '5.0' => false,
42
            '5.1' => true,
43
        ),
44
        'spl_autoload_extensions' => array(
45
            '5.0' => false,
46
            '5.1' => true,
47
        ),
48
        'spl_autoload_functions' => array(
49
            '5.0' => false,
50
            '5.1' => true,
51
        ),
52
        'spl_autoload_register' => array(
53
            '5.0' => false,
54
            '5.1' => true,
55
        ),
56
        'spl_autoload_unregister' => array(
57
            '5.0' => false,
58
            '5.1' => true,
59
        ),
60
        'spl_autoload' => array(
61
            '5.0' => false,
62
            '5.1' => true,
63
        ),
64
        'hash_hmac' => array(
65
            '5.1.1' => false,
66
            '5.1.2' => true,
67
        ),
68
        'array_fill_keys' => array(
69
            '5.1' => false,
70
            '5.2' => true,
71
        ),
72
        'error_get_last' => array(
73
            '5.1' => false,
74
            '5.2' => true,
75
        ),
76
        'image_type_to_extension' => array(
77
            '5.1' => false,
78
            '5.2' => true,
79
        ),
80
        'memory_get_peak_usage' => array(
81
            '5.1' => false,
82
            '5.2' => true,
83
        ),
84
        'sys_get_temp_dir' => array(
85
            '5.1' => false,
86
            '5.2' => true,
87
        ),
88
        'timezone_abbreviations_list' => array(
89
            '5.1' => false,
90
            '5.2' => true,
91
        ),
92
        'timezone_identifiers_list' => array(
93
            '5.1' => false,
94
            '5.2' => true,
95
        ),
96
        'timezone_name_from_abbr' => array(
97
            '5.1' => false,
98
            '5.2' => true,
99
        ),
100
        'stream_socket_shutdown' => array(
101
            '5.1' => false,
102
            '5.2' => true,
103
        ),
104
        'imagegrabscreen' => array(
105
            '5.1' => false,
106
            '5.2' => true,
107
        ),
108
        'imagegrabwindow' => array(
109
            '5.1' => false,
110
            '5.2' => true,
111
        ),
112
        'libxml_disable_entity_loader' => array(
113
            '5.1' => false,
114
            '5.2' => true,
115
        ),
116
        'mb_stripos' => array(
117
            '5.1' => false,
118
            '5.2' => true,
119
        ),
120
        'mb_stristr' => array(
121
            '5.1' => false,
122
            '5.2' => true,
123
        ),
124
        'mb_strrchr' => array(
125
            '5.1' => false,
126
            '5.2' => true,
127
        ),
128
        'mb_strrichr' => array(
129
            '5.1' => false,
130
            '5.2' => true,
131
        ),
132
        'mb_strripos' => array(
133
            '5.1' => false,
134
            '5.2' => true,
135
        ),
136
        'ming_setSWFCompression' => array(
137
            '5.1' => false,
138
            '5.2' => true,
139
        ),
140
        'openssl_csr_get_public_key' => array(
141
            '5.1' => false,
142
            '5.2' => true,
143
        ),
144
        'openssl_csr_get_subject' => array(
145
            '5.1' => false,
146
            '5.2' => true,
147
        ),
148
        'openssl_pkey_get_details' => array(
149
            '5.1' => false,
150
            '5.2' => true,
151
        ),
152
        'spl_object_hash' => array(
153
            '5.1' => false,
154
            '5.2' => true,
155
        ),
156
        'iterator_apply' => array(
157
            '5.1' => false,
158
            '5.2' => true,
159
        ),
160
        'preg_last_error' => array(
161
            '5.1' => false,
162
            '5.2' => true,
163
        ),
164
        'pg_field_table' => array(
165
            '5.1' => false,
166
            '5.2' => true,
167
        ),
168
        'posix_initgroups' => array(
169
            '5.1' => false,
170
            '5.2' => true,
171
        ),
172
        'gmp_nextprime' => array(
173
            '5.1' => false,
174
            '5.2' => true,
175
        ),
176
        'xmlwriter_full_end_element' => array(
177
            '5.1' => false,
178
            '5.2' => true,
179
        ),
180
        'xmlwriter_write_raw' => array(
181
            '5.1' => false,
182
            '5.2' => true,
183
        ),
184
        'xmlwriter_start_dtd_entity' => array(
185
            '5.1' => false,
186
            '5.2' => true,
187
        ),
188
        'xmlwriter_end_dtd_entity' => array(
189
            '5.1' => false,
190
            '5.2' => true,
191
        ),
192
        'xmlwriter_write_dtd_entity' => array(
193
            '5.1' => false,
194
            '5.2' => true,
195
        ),
196
        'filter_has_var' => array(
197
            '5.1' => false,
198
            '5.2' => true,
199
        ),
200
        'filter_id' => array(
201
            '5.1' => false,
202
            '5.2' => true,
203
        ),
204
        'filter_input_array' => array(
205
            '5.1' => false,
206
            '5.2' => true,
207
        ),
208
        'filter_input' => array(
209
            '5.1' => false,
210
            '5.2' => true,
211
        ),
212
        'filter_list' => array(
213
            '5.1' => false,
214
            '5.2' => true,
215
        ),
216
        'filter_var_array' => array(
217
            '5.1' => false,
218
            '5.2' => true,
219
        ),
220
        'filter_var' => array(
221
            '5.1' => false,
222
            '5.2' => true,
223
        ),
224
        'json_decode' => array(
225
            '5.1' => false,
226
            '5.2' => true,
227
        ),
228
        'json_encode' => array(
229
            '5.1' => false,
230
            '5.2' => true,
231
        ),
232
        'zip_close' => array(
233
            '5.1' => false,
234
            '5.2' => true,
235
        ),
236
        'zip_entry_close' => array(
237
            '5.1' => false,
238
            '5.2' => true,
239
        ),
240
        'zip_entry_compressedsize' => array(
241
            '5.1' => false,
242
            '5.2' => true,
243
        ),
244
        'zip_entry_compressionmethod' => array(
245
            '5.1' => false,
246
            '5.2' => true,
247
        ),
248
        'zip_entry_filesize' => array(
249
            '5.1' => false,
250
            '5.2' => true,
251
        ),
252
        'zip_entry_name' => array(
253
            '5.1' => false,
254
            '5.2' => true,
255
        ),
256
        'zip_entry_open' => array(
257
            '5.1' => false,
258
            '5.2' => true,
259
        ),
260
        'zip_entry_read' => array(
261
            '5.1' => false,
262
            '5.2' => true,
263
        ),
264
        'zip_open' => array(
265
            '5.1' => false,
266
            '5.2' => true,
267
        ),
268
        'zip_read' => array(
269
            '5.1' => false,
270
            '5.2' => true,
271
        ),
272
273
        'array_replace' => array(
274
            '5.2' => false,
275
            '5.3' => true,
276
        ),
277
        'array_replace_recursive' => array(
278
            '5.2' => false,
279
            '5.3' => true,
280
        ),
281
        'class_alias' => array(
282
            '5.2' => false,
283
            '5.3' => true,
284
        ),
285
        'forward_static_call' => array(
286
            '5.2' => false,
287
            '5.3' => true,
288
        ),
289
        'forward_static_call_array' => array(
290
            '5.2' => false,
291
            '5.3' => true,
292
        ),
293
        'gc_collect_cycles' => array(
294
            '5.2' => false,
295
            '5.3' => true,
296
        ),
297
        'gc_disable' => array(
298
            '5.2' => false,
299
            '5.3' => true,
300
        ),
301
        'gc_enable' => array(
302
            '5.2' => false,
303
            '5.3' => true,
304
        ),
305
        'gc_enabled' => array(
306
            '5.2' => false,
307
            '5.3' => true,
308
        ),
309
        'get_called_class' => array(
310
            '5.2' => false,
311
            '5.3' => true,
312
        ),
313
        'gethostname' => array(
314
            '5.2' => false,
315
            '5.3' => true,
316
        ),
317
        'header_remove' => array(
318
            '5.2' => false,
319
            '5.3' => true,
320
        ),
321
        'lcfirst' => array(
322
            '5.2' => false,
323
            '5.3' => true,
324
        ),
325
        'parse_ini_string' => array(
326
            '5.2' => false,
327
            '5.3' => true,
328
        ),
329
        'quoted_printable_encode' => array(
330
            '5.2' => false,
331
            '5.3' => true,
332
        ),
333
        'str_getcsv' => array(
334
            '5.2' => false,
335
            '5.3' => true,
336
        ),
337
        'stream_context_set_default' => array(
338
            '5.2' => false,
339
            '5.3' => true,
340
        ),
341
        'stream_supports_lock' => array(
342
            '5.2' => false,
343
            '5.3' => true,
344
        ),
345
        'stream_context_get_params' => array(
346
            '5.2' => false,
347
            '5.3' => true,
348
        ),
349
        'date_add' => array(
350
            '5.2' => false,
351
            '5.3' => true,
352
        ),
353
        'date_create_from_format' => array(
354
            '5.2' => false,
355
            '5.3' => true,
356
        ),
357
        'date_diff' => array(
358
            '5.2' => false,
359
            '5.3' => true,
360
        ),
361
        'date_get_last_errors' => array(
362
            '5.2' => false,
363
            '5.3' => true,
364
        ),
365
        'date_parse_from_format' => array(
366
            '5.2' => false,
367
            '5.3' => true,
368
        ),
369
        'date_sub' => array(
370
            '5.2' => false,
371
            '5.3' => true,
372
        ),
373
        'timezone_version_get' => array(
374
            '5.2' => false,
375
            '5.3' => true,
376
        ),
377
        'gmp_testbit' => array(
378
            '5.2' => false,
379
            '5.3' => true,
380
        ),
381
        'hash_copy' => array(
382
            '5.2' => false,
383
            '5.3' => true,
384
        ),
385
        'imap_gc' => array(
386
            '5.2' => false,
387
            '5.3' => true,
388
        ),
389
        'imap_utf8_to_mutf7' => array(
390
            '5.2' => false,
391
            '5.3' => true,
392
        ),
393
        'imap_mutf7_to_utf8' => array(
394
            '5.2' => false,
395
            '5.3' => true,
396
        ),
397
        'json_last_error' => array(
398
            '5.2' => false,
399
            '5.3' => true,
400
        ),
401
        'mysqli_get_cache_stats' => array(
402
            '5.2' => false,
403
            '5.3' => true,
404
        ),
405
        'mysqli_fetch_all' => array(
406
            '5.2' => false,
407
            '5.3' => true,
408
        ),
409
        'mysqli_get_connection_status' => array(
410
            '5.2' => false,
411
            '5.3' => true,
412
        ),
413
        'mysqli_poll' => array(
414
            '5.2' => false,
415
            '5.3' => true,
416
        ),
417
        'mysqli_read_async_query' => array(
418
            '5.2' => false,
419
            '5.3' => true,
420
        ),
421
        'openssl_random_pseudo_bytes' => array(
422
            '5.2' => false,
423
            '5.3' => true,
424
        ),
425
        'pcntl_signal_dispatch' => array(
426
            '5.2' => false,
427
            '5.3' => true,
428
        ),
429
        'pcntl_sigprocmask' => array(
430
            '5.2' => false,
431
            '5.3' => true,
432
        ),
433
        'pcntl_sigtimedwait' => array(
434
            '5.2' => false,
435
            '5.3' => true,
436
        ),
437
        'pcntl_sigwaitinfo' => array(
438
            '5.2' => false,
439
            '5.3' => true,
440
        ),
441
        'preg_filter' => array(
442
            '5.2' => false,
443
            '5.3' => true,
444
        ),
445
        'msg_queue_exists' => array(
446
            '5.2' => false,
447
            '5.3' => true,
448
        ),
449
        'shm_has_vars' => array(
450
            '5.2' => false,
451
            '5.3' => true,
452
        ),
453
        'acosh' => array(
454
            '5.2' => false,
455
            '5.3' => true,
456
        ),
457
        'asinh' => array(
458
            '5.2' => false,
459
            '5.3' => true,
460
        ),
461
        'atanh' => array(
462
            '5.2' => false,
463
            '5.3' => true,
464
        ),
465
        'expm1' => array(
466
            '5.2' => false,
467
            '5.3' => true,
468
        ),
469
        'log1p' => array(
470
            '5.2' => false,
471
            '5.3' => true,
472
        ),
473
        'enchant_broker_describe' => array(
474
            '5.2' => false,
475
            '5.3' => true,
476
        ),
477
        'enchant_broker_dict_exists' => array(
478
            '5.2' => false,
479
            '5.3' => true,
480
        ),
481
        'enchant_broker_free_dict' => array(
482
            '5.2' => false,
483
            '5.3' => true,
484
        ),
485
        'enchant_broker_free' => array(
486
            '5.2' => false,
487
            '5.3' => true,
488
        ),
489
        'enchant_broker_get_error' => array(
490
            '5.2' => false,
491
            '5.3' => true,
492
        ),
493
        'enchant_broker_init' => array(
494
            '5.2' => false,
495
            '5.3' => true,
496
        ),
497
        'enchant_broker_list_dicts' => array(
498
            '5.2' => false,
499
            '5.3' => true,
500
        ),
501
        'enchant_broker_request_dict' => array(
502
            '5.2' => false,
503
            '5.3' => true,
504
        ),
505
        'enchant_broker_request_pwl_dict' => array(
506
            '5.2' => false,
507
            '5.3' => true,
508
        ),
509
        'enchant_broker_set_ordering' => array(
510
            '5.2' => false,
511
            '5.3' => true,
512
        ),
513
        'enchant_dict_add_to_personal' => array(
514
            '5.2' => false,
515
            '5.3' => true,
516
        ),
517
        'enchant_dict_add_to_session' => array(
518
            '5.2' => false,
519
            '5.3' => true,
520
        ),
521
        'enchant_dict_check' => array(
522
            '5.2' => false,
523
            '5.3' => true,
524
        ),
525
        'enchant_dict_describe' => array(
526
            '5.2' => false,
527
            '5.3' => true,
528
        ),
529
        'enchant_dict_get_error' => array(
530
            '5.2' => false,
531
            '5.3' => true,
532
        ),
533
        'enchant_dict_is_in_session' => array(
534
            '5.2' => false,
535
            '5.3' => true,
536
        ),
537
        'enchant_dict_quick_check' => array(
538
            '5.2' => false,
539
            '5.3' => true,
540
        ),
541
        'enchant_dict_store_replacement' => array(
542
            '5.2' => false,
543
            '5.3' => true,
544
        ),
545
        'enchant_dict_suggest' => array(
546
            '5.2' => false,
547
            '5.3' => true,
548
        ),
549
        'finfo_buffer' => array(
550
            '5.2' => false,
551
            '5.3' => true,
552
        ),
553
        'finfo_close' => array(
554
            '5.2' => false,
555
            '5.3' => true,
556
        ),
557
        'finfo_file' => array(
558
            '5.2' => false,
559
            '5.3' => true,
560
        ),
561
        'finfo_open' => array(
562
            '5.2' => false,
563
            '5.3' => true,
564
        ),
565
        'finfo_set_flags' => array(
566
            '5.2' => false,
567
            '5.3' => true,
568
        ),
569
        'intl_error_name' => array(
570
            '5.2' => false,
571
            '5.3' => true,
572
        ),
573
        'intl_get_error_code' => array(
574
            '5.2' => false,
575
            '5.3' => true,
576
        ),
577
        'intl_get_error_message' => array(
578
            '5.2' => false,
579
            '5.3' => true,
580
        ),
581
        'intl_is_failure' => array(
582
            '5.2' => false,
583
            '5.3' => true,
584
        ),
585
586
        'hex2bin' => array(
587
            '5.3' => false,
588
            '5.4' => true,
589
        ),
590
        'http_response_code' => array(
591
            '5.3' => false,
592
            '5.4' => true,
593
        ),
594
        'get_declared_traits' => array(
595
            '5.3' => false,
596
            '5.4' => true,
597
        ),
598
        'getimagesizefromstring' => array(
599
            '5.3' => false,
600
            '5.4' => true,
601
        ),
602
        'stream_set_chunk_size' => array(
603
            '5.3' => false,
604
            '5.4' => true,
605
        ),
606
        'socket_import_stream' => array(
607
            '5.3' => false,
608
            '5.4' => true,
609
        ),
610
        'trait_exists' => array(
611
            '5.3' => false,
612
            '5.4' => true,
613
        ),
614
        'header_register_callback' => array(
615
            '5.3' => false,
616
            '5.4' => true,
617
        ),
618
        'class_uses' => array(
619
            '5.3' => false,
620
            '5.4' => true,
621
        ),
622
        'session_status' => array(
623
            '5.3' => false,
624
            '5.4' => true,
625
        ),
626
        'session_register_shutdown' => array(
627
            '5.3' => false,
628
            '5.4' => true,
629
        ),
630
        'mysqli_error_list' => array(
631
            '5.3' => false,
632
            '5.4' => true,
633
        ),
634
        'mysqli_stmt_error_list' => array(
635
            '5.3' => false,
636
            '5.4' => true,
637
        ),
638
        'libxml_set_external_entity_loader' => array(
639
            '5.3' => false,
640
            '5.4' => true,
641
        ),
642
        'ldap_control_paged_result' => array(
643
            '5.3' => false,
644
            '5.4' => true,
645
        ),
646
        'ldap_control_paged_result_response' => array(
647
            '5.3' => false,
648
            '5.4' => true,
649
        ),
650
        'transliteral_create' => array(
651
            '5.3' => false,
652
            '5.4' => true,
653
        ),
654
        'transliteral_create_from_rules' => array(
655
            '5.3' => false,
656
            '5.4' => true,
657
        ),
658
        'transliteral_create_inverse' => array(
659
            '5.3' => false,
660
            '5.4' => true,
661
        ),
662
        'transliteral_get_error_code' => array(
663
            '5.3' => false,
664
            '5.4' => true,
665
        ),
666
        'transliteral_get_error_message' => array(
667
            '5.3' => false,
668
            '5.4' => true,
669
        ),
670
        'transliteral_list_ids' => array(
671
            '5.3' => false,
672
            '5.4' => true,
673
        ),
674
        'transliteral_transliterate' => array(
675
            '5.3' => false,
676
            '5.4' => true,
677
        ),
678
        'zlib_decode' => array(
679
            '5.3' => false,
680
            '5.4' => true,
681
        ),
682
        'zlib_encode' => array(
683
            '5.3' => false,
684
            '5.4' => true,
685
        ),
686
687
        'array_column' => array(
688
            '5.4' => false,
689
            '5.5' => true,
690
        ),
691
        'boolval' => array(
692
            '5.4' => false,
693
            '5.5' => true,
694
        ),
695
        'json_last_error_msg' => array(
696
            '5.4' => false,
697
            '5.5' => true,
698
        ),
699
        'password_get_info' => array(
700
            '5.4' => false,
701
            '5.5' => true,
702
        ),
703
        'password_hash' => array(
704
            '5.4' => false,
705
            '5.5' => true,
706
        ),
707
        'password_needs_rehash' => array(
708
            '5.4' => false,
709
            '5.5' => true,
710
        ),
711
        'password_verify' => array(
712
            '5.4' => false,
713
            '5.5' => true,
714
        ),
715
        'hash_pbkdf2' => array(
716
            '5.4' => false,
717
            '5.5' => true,
718
        ),
719
        'openssl_pbkdf2' => array(
720
            '5.4' => false,
721
            '5.5' => true,
722
        ),
723
        'curl_escape' => array(
724
            '5.4' => false,
725
            '5.5' => true,
726
        ),
727
        'curl_file_create' => array(
728
            '5.4' => false,
729
            '5.5' => true,
730
        ),
731
        'curl_multi_setopt' => array(
732
            '5.4' => false,
733
            '5.5' => true,
734
        ),
735
        'curl_multi_strerror' => array(
736
            '5.4' => false,
737
            '5.5' => true,
738
        ),
739
        'curl_pause' => array(
740
            '5.4' => false,
741
            '5.5' => true,
742
        ),
743
        'curl_reset' => array(
744
            '5.4' => false,
745
            '5.5' => true,
746
        ),
747
        'curl_share_close' => array(
748
            '5.4' => false,
749
            '5.5' => true,
750
        ),
751
        'curl_share_init' => array(
752
            '5.4' => false,
753
            '5.5' => true,
754
        ),
755
        'curl_share_setopt' => array(
756
            '5.4' => false,
757
            '5.5' => true,
758
        ),
759
        'curl_strerror' => array(
760
            '5.4' => false,
761
            '5.5' => true,
762
        ),
763
        'curl_unescape' => array(
764
            '5.4' => false,
765
            '5.5' => true,
766
        ),
767
        'imageaffinematrixconcat' => array(
768
            '5.4' => false,
769
            '5.5' => true,
770
        ),
771
        'imageaffinematrixget' => array(
772
            '5.4' => false,
773
            '5.5' => true,
774
        ),
775
        'imagecrop' => array(
776
            '5.4' => false,
777
            '5.5' => true,
778
        ),
779
        'imagecropauto' => array(
780
            '5.4' => false,
781
            '5.5' => true,
782
        ),
783
        'imageflip' => array(
784
            '5.4' => false,
785
            '5.5' => true,
786
        ),
787
        'imagepalettetotruecolor' => array(
788
            '5.4' => false,
789
            '5.5' => true,
790
        ),
791
        'imagescale' => array(
792
            '5.4' => false,
793
            '5.5' => true,
794
        ),
795
        'mysqli_begin_transaction' => array(
796
            '5.4' => false,
797
            '5.5' => true,
798
        ),
799
        'mysqli_release_savepoint' => array(
800
            '5.4' => false,
801
            '5.5' => true,
802
        ),
803
        'mysqli_savepoint' => array(
804
            '5.4' => false,
805
            '5.5' => true,
806
        ),
807
        'pg_escape_literal' => array(
808
            '5.4' => false,
809
            '5.5' => true,
810
        ),
811
        'pg_escape_identifier' => array(
812
            '5.4' => false,
813
            '5.5' => true,
814
        ),
815
        'socket_sendmsg' => array(
816
            '5.4' => false,
817
            '5.5' => true,
818
        ),
819
        'socket_recvmsg' => array(
820
            '5.4' => false,
821
            '5.5' => true,
822
        ),
823
        'socket_cmsg_space' => array(
824
            '5.4' => false,
825
            '5.5' => true,
826
        ),
827
        'cli_get_process_title' => array(
828
            '5.4' => false,
829
            '5.5' => true,
830
        ),
831
        'cli_set_process_title' => array(
832
            '5.4' => false,
833
            '5.5' => true,
834
        ),
835
        'datefmt_format_object' => array(
836
            '5.4' => false,
837
            '5.5' => true,
838
        ),
839
        'datefmt_get_calendar_object' => array(
840
            '5.4' => false,
841
            '5.5' => true,
842
        ),
843
        'datefmt_get_timezone' => array(
844
            '5.4' => false,
845
            '5.5' => true,
846
        ),
847
        'datefmt_set_timezone' => array(
848
            '5.4' => false,
849
            '5.5' => true,
850
        ),
851
        'datefmt_get_calendar_object' => array(
852
            '5.4' => false,
853
            '5.5' => true,
854
        ),
855
        'intlcal_create_instance' => array(
856
            '5.4' => false,
857
            '5.5' => true,
858
        ),
859
        'intlcal_get_keyword_values_for_locale' => array(
860
            '5.4' => false,
861
            '5.5' => true,
862
        ),
863
        'intlcal_get_now' => array(
864
            '5.4' => false,
865
            '5.5' => true,
866
        ),
867
        'intlcal_get_available_locales' => array(
868
            '5.4' => false,
869
            '5.5' => true,
870
        ),
871
        'intlcal_get' => array(
872
            '5.4' => false,
873
            '5.5' => true,
874
        ),
875
        'intlcal_get_time' => array(
876
            '5.4' => false,
877
            '5.5' => true,
878
        ),
879
        'intlcal_set_time' => array(
880
            '5.4' => false,
881
            '5.5' => true,
882
        ),
883
        'intlcal_add' => array(
884
            '5.4' => false,
885
            '5.5' => true,
886
        ),
887
        'intlcal_set_time_zone' => array(
888
            '5.4' => false,
889
            '5.5' => true,
890
        ),
891
        'intlcal_after' => array(
892
            '5.4' => false,
893
            '5.5' => true,
894
        ),
895
        'intlcal_before' => array(
896
            '5.4' => false,
897
            '5.5' => true,
898
        ),
899
        'intlcal_set' => array(
900
            '5.4' => false,
901
            '5.5' => true,
902
        ),
903
        'intlcal_roll' => array(
904
            '5.4' => false,
905
            '5.5' => true,
906
        ),
907
        'intlcal_clear' => array(
908
            '5.4' => false,
909
            '5.5' => true,
910
        ),
911
        'intlcal_field_difference' => array(
912
            '5.4' => false,
913
            '5.5' => true,
914
        ),
915
        'intlcal_get_actual_maximum' => array(
916
            '5.4' => false,
917
            '5.5' => true,
918
        ),
919
        'intlcal_get_actual_minumum' => array(
920
            '5.4' => false,
921
            '5.5' => true,
922
        ),
923
        'intlcal_get_day_of_week_type' => array(
924
            '5.4' => false,
925
            '5.5' => true,
926
        ),
927
        'intlcal_get_first_day_of_week' => array(
928
            '5.4' => false,
929
            '5.5' => true,
930
        ),
931
        'intlcal_get_greatest_minimum' => array(
932
            '5.4' => false,
933
            '5.5' => true,
934
        ),
935
        'intlcal_get_least_maximum' => array(
936
            '5.4' => false,
937
            '5.5' => true,
938
        ),
939
        'intlcal_get_locale' => array(
940
            '5.4' => false,
941
            '5.5' => true,
942
        ),
943
        'intlcal_get_maximum' => array(
944
            '5.4' => false,
945
            '5.5' => true,
946
        ),
947
        'intlcal_get_minimal_days_in_first_week' => array(
948
            '5.4' => false,
949
            '5.5' => true,
950
        ),
951
        'intlcal_get_minimum' => array(
952
            '5.4' => false,
953
            '5.5' => true,
954
        ),
955
        'intlcal_get_time_zone' => array(
956
            '5.4' => false,
957
            '5.5' => true,
958
        ),
959
        'intlcal_get_type' => array(
960
            '5.4' => false,
961
            '5.5' => true,
962
        ),
963
        'intlcal_get_weekend_transition' => array(
964
            '5.4' => false,
965
            '5.5' => true,
966
        ),
967
        'intlcal_in_daylight_time' => array(
968
            '5.4' => false,
969
            '5.5' => true,
970
        ),
971
        'intlcal_is_equivalent_to' => array(
972
            '5.4' => false,
973
            '5.5' => true,
974
        ),
975
        'intlcal_is_lenient' => array(
976
            '5.4' => false,
977
            '5.5' => true,
978
        ),
979
        'intlcal_equals' => array(
980
            '5.4' => false,
981
            '5.5' => true,
982
        ),
983
        'intlcal_get_repeated_wall_time_option' => array(
984
            '5.4' => false,
985
            '5.5' => true,
986
        ),
987
        'intlcal_get_skipped_wall_time_option' => array(
988
            '5.4' => false,
989
            '5.5' => true,
990
        ),
991
        'intlcal_set_repeated_wall_time_option' => array(
992
            '5.4' => false,
993
            '5.5' => true,
994
        ),
995
        'intlcal_set_skipped_wall_time_option' => array(
996
            '5.4' => false,
997
            '5.5' => true,
998
        ),
999
        'intlcal_from_date_time' => array(
1000
            '5.4' => false,
1001
            '5.5' => true,
1002
        ),
1003
        'intlcal_to_date_time' => array(
1004
            '5.4' => false,
1005
            '5.5' => true,
1006
        ),
1007
        'intlcal_get_error_code' => array(
1008
            '5.4' => false,
1009
            '5.5' => true,
1010
        ),
1011
        'intlcal_get_error_message' => array(
1012
            '5.4' => false,
1013
            '5.5' => true,
1014
        ),
1015
        'intlgregcal_create_instance' => array(
1016
            '5.4' => false,
1017
            '5.5' => true,
1018
        ),
1019
        'intlgregcal_set_gregorian_change' => array(
1020
            '5.4' => false,
1021
            '5.5' => true,
1022
        ),
1023
        'intlgregcal_get_gregorian_change' => array(
1024
            '5.4' => false,
1025
            '5.5' => true,
1026
        ),
1027
        'intlgregcal_is_leap_year' => array(
1028
            '5.4' => false,
1029
            '5.5' => true,
1030
        ),
1031
        'intlz_create_time_zone' => array(
1032
            '5.4' => false,
1033
            '5.5' => true,
1034
        ),
1035
        'intlz_create_default' => array(
1036
            '5.4' => false,
1037
            '5.5' => true,
1038
        ),
1039
        'intlz_get_id' => array(
1040
            '5.4' => false,
1041
            '5.5' => true,
1042
        ),
1043
        'intlz_get_gmt' => array(
1044
            '5.4' => false,
1045
            '5.5' => true,
1046
        ),
1047
        'intlz_get_unknown' => array(
1048
            '5.4' => false,
1049
            '5.5' => true,
1050
        ),
1051
        'intlz_create_enumeration' => array(
1052
            '5.4' => false,
1053
            '5.5' => true,
1054
        ),
1055
        'intlz_count_equivalent_ids' => array(
1056
            '5.4' => false,
1057
            '5.5' => true,
1058
        ),
1059
        'intlz_create_time_zone_id_enumeration' => array(
1060
            '5.4' => false,
1061
            '5.5' => true,
1062
        ),
1063
        'intlz_get_canonical_id' => array(
1064
            '5.4' => false,
1065
            '5.5' => true,
1066
        ),
1067
        'intlz_get_region' => array(
1068
            '5.4' => false,
1069
            '5.5' => true,
1070
        ),
1071
        'intlz_get_tz_data_version' => array(
1072
            '5.4' => false,
1073
            '5.5' => true,
1074
        ),
1075
        'intlz_get_equivalent_id' => array(
1076
            '5.4' => false,
1077
            '5.5' => true,
1078
        ),
1079
        'intlz_use_daylight_time' => array(
1080
            '5.4' => false,
1081
            '5.5' => true,
1082
        ),
1083
        'intlz_get_offset' => array(
1084
            '5.4' => false,
1085
            '5.5' => true,
1086
        ),
1087
        'intlz_get_raw_offset' => array(
1088
            '5.4' => false,
1089
            '5.5' => true,
1090
        ),
1091
        'intlz_has_same_rules' => array(
1092
            '5.4' => false,
1093
            '5.5' => true,
1094
        ),
1095
        'intlz_get_display_name' => array(
1096
            '5.4' => false,
1097
            '5.5' => true,
1098
        ),
1099
        'intlz_get_dst_savings' => array(
1100
            '5.4' => false,
1101
            '5.5' => true,
1102
        ),
1103
        'intlz_from_date_time_zone' => array(
1104
            '5.4' => false,
1105
            '5.5' => true,
1106
        ),
1107
        'intlz_to_date_time_zone' => array(
1108
            '5.4' => false,
1109
            '5.5' => true,
1110
        ),
1111
        'intlz_get_error_code' => array(
1112
            '5.4' => false,
1113
            '5.5' => true,
1114
        ),
1115
        'intlz_get_error_message' => array(
1116
            '5.4' => false,
1117
            '5.5' => true,
1118
        ),
1119
1120
        'gmp_root' => array(
1121
            '5.5' => false,
1122
            '5.6' => true,
1123
        ),
1124
        'gmp_rootrem' => array(
1125
            '5.5' => false,
1126
            '5.6' => true,
1127
        ),
1128
        'hash_equals' => array(
1129
            '5.5' => false,
1130
            '5.6' => true,
1131
        ),
1132
        'ldap_escape' => array(
1133
            '5.5' => false,
1134
            '5.6' => true,
1135
        ),
1136
        'ldap_modify_batch' => array(
1137
            '5.4.25' => false,
1138
            '5.5.9'  => false,
1139
            '5.4.26' => true,
1140
            '5.5.10' => true,
1141
            '5.6.0'  => true,
1142
        ),
1143
        'mysqli_get_links_stats' => array(
1144
            '5.5' => false,
1145
            '5.6' => true,
1146
        ),
1147
        'openssl_get_cert_locations' => array(
1148
            '5.5' => false,
1149
            '5.6' => true,
1150
        ),
1151
        'openssl_x509_fingerprint' => array(
1152
            '5.5' => false,
1153
            '5.6' => true,
1154
        ),
1155
        'openssl_spki_new' => array(
1156
            '5.5' => false,
1157
            '5.6' => true,
1158
        ),
1159
        'openssl_spki_verify' => array(
1160
            '5.5' => false,
1161
            '5.6' => true,
1162
        ),
1163
        'openssl_spki_export_challenge' => array(
1164
            '5.5' => false,
1165
            '5.6' => true,
1166
        ),
1167
        'openssl_spki_export' => array(
1168
            '5.5' => false,
1169
            '5.6' => true,
1170
        ),
1171
        'pg_connect_poll' => array(
1172
            '5.5' => false,
1173
            '5.6' => true,
1174
        ),
1175
        'pg_consume_input' => array(
1176
            '5.5' => false,
1177
            '5.6' => true,
1178
        ),
1179
        'pg_flush' => array(
1180
            '5.5' => false,
1181
            '5.6' => true,
1182
        ),
1183
        'pg_lo_truncate' => array(
1184
            '5.5' => false,
1185
            '5.6' => true,
1186
        ),
1187
        'pg_socket' => array(
1188
            '5.5' => false,
1189
            '5.6' => true,
1190
        ),
1191
        'session_abort' => array(
1192
            '5.5' => false,
1193
            '5.6' => true,
1194
        ),
1195
        'session_reset' => array(
1196
            '5.5' => false,
1197
            '5.6' => true,
1198
        ),
1199
1200
        'random_bytes' => array(
1201
            '5.6' => false,
1202
            '7.0' => true,
1203
        ),
1204
        'random_int' => array(
1205
            '5.6' => false,
1206
            '7.0' => true,
1207
        ),
1208
        'error_clear_last' => array(
1209
            '5.6' => false,
1210
            '7.0' => true,
1211
        ),
1212
        'gmp_random_seed' => array(
1213
            '5.6' => false,
1214
            '7.0' => true,
1215
        ),
1216
        'intdiv' => array(
1217
            '5.6' => false,
1218
            '7.0' => true,
1219
        ),
1220
        'preg_replace_callback_array' => array(
1221
            '5.6' => false,
1222
            '7.0' => true,
1223
        ),
1224
        'gc_mem_caches' => array(
1225
            '5.6' => false,
1226
            '7.0' => true,
1227
        ),
1228
        'get_resources' => array(
1229
            '5.6' => false,
1230
            '7.0' => true,
1231
        ),
1232
        'posix_setrlimit' => array(
1233
            '5.6' => false,
1234
            '7.0' => true,
1235
        ),
1236
        'inflate_add' => array(
1237
            '5.6' => false,
1238
            '7.0' => true,
1239
        ),
1240
        'deflate_add' => array(
1241
            '5.6' => false,
1242
            '7.0' => true,
1243
        ),
1244
        'inflate_init' => array(
1245
            '5.6' => false,
1246
            '7.0' => true,
1247
        ),
1248
        'deflate_init' => array(
1249
            '5.6' => false,
1250
            '7.0' => true,
1251
        ),
1252
1253
        'socket_export_stream' => array(
1254
            '7.0.6' => false,
1255
            '7.0.7' => true,
1256
        ),
1257
1258
        'curl_multi_errno' => array(
1259
            '7.0' => false,
1260
            '7.1' => true,
1261
        ),
1262
        'curl_share_errno' => array(
1263
            '7.0' => false,
1264
            '7.1' => true,
1265
        ),
1266
        'curl_share_strerror' => array(
1267
            '7.0' => false,
1268
            '7.1' => true,
1269
        ),
1270
        'is_iterable' => array(
1271
            '7.0' => false,
1272
            '7.1' => true,
1273
        ),
1274
        'pcntl_async_signals' => array(
1275
            '7.0' => false,
1276
            '7.1' => true,
1277
        ),
1278
        'session_create_id' => array(
1279
            '7.0' => false,
1280
            '7.1' => true,
1281
        ),
1282
        'session_gc' => array(
1283
            '7.0' => false,
1284
            '7.1' => true,
1285
        ),
1286
1287
        'oci_register_taf_callback' => array(
1288
            '7.1.6' => false,
1289
            '7.1.7' => true,
1290
        ),
1291
        'oci_unregister_taf_callback' => array(
1292
            '7.1.8' => false,
1293
            '7.1.9' => true,
1294
        ),
1295
1296
        'stream_isatty' => array(
1297
            '7.1' => false,
1298
            '7.2' => true,
1299
        ),
1300
        'sapi_windows_vt100_support' => array(
1301
            '7.1' => false,
1302
            '7.2' => true,
1303
        ),
1304
        'ftp_append' => array(
1305
            '7.1' => false,
1306
            '7.2' => true,
1307
        ),
1308
        'hash_hmac_algos' => array(
1309
            '7.1' => false,
1310
            '7.2' => true,
1311
        ),
1312
        'imagebmp' => array(
1313
            '7.1' => false,
1314
            '7.2' => true,
1315
        ),
1316
        'imagecreatefrombmp' => array(
1317
            '7.1' => false,
1318
            '7.2' => true,
1319
        ),
1320
        'imagegetclip' => array(
1321
            '7.1' => false,
1322
            '7.2' => true,
1323
        ),
1324
        'imageopenpolygon' => array(
1325
            '7.1' => false,
1326
            '7.2' => true,
1327
        ),
1328
        'imageresolution' => array(
1329
            '7.1' => false,
1330
            '7.2' => true,
1331
        ),
1332
        'imagesetclip' => array(
1333
            '7.1' => false,
1334
            '7.2' => true,
1335
        ),
1336
        'ldap_exop' => array(
1337
            '7.1' => false,
1338
            '7.2' => true,
1339
        ),
1340
        'ldap_exop_passwd' => array(
1341
            '7.1' => false,
1342
            '7.2' => true,
1343
        ),
1344
        'ldap_exop_whoami' => array(
1345
            '7.1' => false,
1346
            '7.2' => true,
1347
        ),
1348
        'ldap_parse_exop' => array(
1349
            '7.1' => false,
1350
            '7.2' => true,
1351
        ),
1352
        'mb_chr' => array(
1353
            '7.1' => false,
1354
            '7.2' => true,
1355
        ),
1356
        'mb_ord' => array(
1357
            '7.1' => false,
1358
            '7.2' => true,
1359
        ),
1360
        'mb_scrub' => array(
1361
            '7.1' => false,
1362
            '7.2' => true,
1363
        ),
1364
        'socket_addrinfo_lookup' => array(
1365
            '7.1' => false,
1366
            '7.2' => true,
1367
        ),
1368
        'socket_addrinfo_connect' => array(
1369
            '7.1' => false,
1370
            '7.2' => true,
1371
        ),
1372
        'socket_addrinfo_bind' => array(
1373
            '7.1' => false,
1374
            '7.2' => true,
1375
        ),
1376
        'socket_addrinfo_explain' => array(
1377
            '7.1' => false,
1378
            '7.2' => true,
1379
        ),
1380
        'spl_object_id' => array(
1381
            '7.1' => false,
1382
            '7.2' => true,
1383
        ),
1384
        'sodium_add' => array(
1385
            '7.1' => false,
1386
            '7.2' => true,
1387
        ),
1388
        'sodium_base642bin' => array(
1389
            '7.1' => false,
1390
            '7.2' => true,
1391
        ),
1392
        'sodium_bin2base64' => array(
1393
            '7.1' => false,
1394
            '7.2' => true,
1395
        ),
1396
        'sodium_bin2hex' => array(
1397
            '7.1' => false,
1398
            '7.2' => true,
1399
        ),
1400
        'sodium_compare' => array(
1401
            '7.1' => false,
1402
            '7.2' => true,
1403
        ),
1404
        'sodium_crypto_aead_aes256gcm_decrypt' => array(
1405
            '7.1' => false,
1406
            '7.2' => true,
1407
        ),
1408
        'sodium_crypto_aead_aes256gcm_encrypt' => array(
1409
            '7.1' => false,
1410
            '7.2' => true,
1411
        ),
1412
        'sodium_crypto_aead_aes256gcm_is_available' => array(
1413
            '7.1' => false,
1414
            '7.2' => true,
1415
        ),
1416
        'sodium_crypto_aead_aes256gcm_keygen' => array(
1417
            '7.1' => false,
1418
            '7.2' => true,
1419
        ),
1420
        'sodium_crypto_aead_chacha20poly1305_decrypt' => array(
1421
            '7.1' => false,
1422
            '7.2' => true,
1423
        ),
1424
        'sodium_crypto_aead_chacha20poly1305_encrypt' => array(
1425
            '7.1' => false,
1426
            '7.2' => true,
1427
        ),
1428
        'sodium_crypto_aead_chacha20poly1305_ietf_decrypt' => array(
1429
            '7.1' => false,
1430
            '7.2' => true,
1431
        ),
1432
        'sodium_crypto_aead_chacha20poly1305_ietf_encrypt' => array(
1433
            '7.1' => false,
1434
            '7.2' => true,
1435
        ),
1436
        'sodium_crypto_aead_chacha20poly1305_ietf_keygen' => array(
1437
            '7.1' => false,
1438
            '7.2' => true,
1439
        ),
1440
        'sodium_crypto_aead_chacha20poly1305_keygen' => array(
1441
            '7.1' => false,
1442
            '7.2' => true,
1443
        ),
1444
        'sodium_crypto_aead_xchacha20poly1305_ietf_decrypt' => array(
1445
            '7.1' => false,
1446
            '7.2' => true,
1447
        ),
1448
        'sodium_crypto_aead_xchacha20poly1305_ietf_encrypt' => array(
1449
            '7.1' => false,
1450
            '7.2' => true,
1451
        ),
1452
        'sodium_crypto_aead_xchacha20poly1305_ietf_keygen' => array(
1453
            '7.1' => false,
1454
            '7.2' => true,
1455
        ),
1456
        'sodium_crypto_auth_keygen' => array(
1457
            '7.1' => false,
1458
            '7.2' => true,
1459
        ),
1460
        'sodium_crypto_auth_verify' => array(
1461
            '7.1' => false,
1462
            '7.2' => true,
1463
        ),
1464
        'sodium_crypto_auth' => array(
1465
            '7.1' => false,
1466
            '7.2' => true,
1467
        ),
1468
        'sodium_crypto_box_keypair_from_secretkey_and_publickey' => array(
1469
            '7.1' => false,
1470
            '7.2' => true,
1471
        ),
1472
        'sodium_crypto_box_keypair' => array(
1473
            '7.1' => false,
1474
            '7.2' => true,
1475
        ),
1476
        'sodium_crypto_box_open' => array(
1477
            '7.1' => false,
1478
            '7.2' => true,
1479
        ),
1480
        'sodium_crypto_box_publickey_from_secretkey' => array(
1481
            '7.1' => false,
1482
            '7.2' => true,
1483
        ),
1484
        'sodium_crypto_box_publickey' => array(
1485
            '7.1' => false,
1486
            '7.2' => true,
1487
        ),
1488
        'sodium_crypto_box_seal_open' => array(
1489
            '7.1' => false,
1490
            '7.2' => true,
1491
        ),
1492
        'sodium_crypto_box_seal' => array(
1493
            '7.1' => false,
1494
            '7.2' => true,
1495
        ),
1496
        'sodium_crypto_box_secretkey' => array(
1497
            '7.1' => false,
1498
            '7.2' => true,
1499
        ),
1500
        'sodium_crypto_box_seed_keypair' => array(
1501
            '7.1' => false,
1502
            '7.2' => true,
1503
        ),
1504
        'sodium_crypto_box' => array(
1505
            '7.1' => false,
1506
            '7.2' => true,
1507
        ),
1508
        'sodium_crypto_generichash_final' => array(
1509
            '7.1' => false,
1510
            '7.2' => true,
1511
        ),
1512
        'sodium_crypto_generichash_init' => array(
1513
            '7.1' => false,
1514
            '7.2' => true,
1515
        ),
1516
        'sodium_crypto_generichash_keygen' => array(
1517
            '7.1' => false,
1518
            '7.2' => true,
1519
        ),
1520
        'sodium_crypto_generichash_update' => array(
1521
            '7.1' => false,
1522
            '7.2' => true,
1523
        ),
1524
        'sodium_crypto_generichash' => array(
1525
            '7.1' => false,
1526
            '7.2' => true,
1527
        ),
1528
        'sodium_crypto_kdf_derive_from_key' => array(
1529
            '7.1' => false,
1530
            '7.2' => true,
1531
        ),
1532
        'sodium_crypto_kdf_keygen' => array(
1533
            '7.1' => false,
1534
            '7.2' => true,
1535
        ),
1536
        'sodium_crypto_kx_client_session_keys' => array(
1537
            '7.1' => false,
1538
            '7.2' => true,
1539
        ),
1540
        'sodium_crypto_kx_keypair' => array(
1541
            '7.1' => false,
1542
            '7.2' => true,
1543
        ),
1544
        'sodium_crypto_kx_publickey' => array(
1545
            '7.1' => false,
1546
            '7.2' => true,
1547
        ),
1548
        'sodium_crypto_kx_secretkey' => array(
1549
            '7.1' => false,
1550
            '7.2' => true,
1551
        ),
1552
        'sodium_crypto_kx_seed_keypair' => array(
1553
            '7.1' => false,
1554
            '7.2' => true,
1555
        ),
1556
        'sodium_crypto_kx_server_session_keys' => array(
1557
            '7.1' => false,
1558
            '7.2' => true,
1559
        ),
1560
        'sodium_crypto_pwhash_scryptsalsa208sha256_str_verify' => array(
1561
            '7.1' => false,
1562
            '7.2' => true,
1563
        ),
1564
        'sodium_crypto_pwhash_scryptsalsa208sha256_str' => array(
1565
            '7.1' => false,
1566
            '7.2' => true,
1567
        ),
1568
        'sodium_crypto_pwhash_scryptsalsa208sha256' => array(
1569
            '7.1' => false,
1570
            '7.2' => true,
1571
        ),
1572
        'sodium_crypto_pwhash_str_needs_rehash' => array(
1573
            '7.1' => false,
1574
            '7.2' => true,
1575
        ),
1576
        'sodium_crypto_pwhash_str_verify' => array(
1577
            '7.1' => false,
1578
            '7.2' => true,
1579
        ),
1580
        'sodium_crypto_pwhash_str' => array(
1581
            '7.1' => false,
1582
            '7.2' => true,
1583
        ),
1584
        'sodium_crypto_pwhash' => array(
1585
            '7.1' => false,
1586
            '7.2' => true,
1587
        ),
1588
        'sodium_crypto_scalarmult_base' => array(
1589
            '7.1' => false,
1590
            '7.2' => true,
1591
        ),
1592
        'sodium_crypto_scalarmult' => array(
1593
            '7.1' => false,
1594
            '7.2' => true,
1595
        ),
1596
        'sodium_crypto_secretbox_keygen' => array(
1597
            '7.1' => false,
1598
            '7.2' => true,
1599
        ),
1600
        'sodium_crypto_secretbox_open' => array(
1601
            '7.1' => false,
1602
            '7.2' => true,
1603
        ),
1604
        'sodium_crypto_secretbox' => array(
1605
            '7.1' => false,
1606
            '7.2' => true,
1607
        ),
1608
        'sodium_crypto_secretstream_xchacha20poly1305_init_pull' => array(
1609
            '7.1' => false,
1610
            '7.2' => true,
1611
        ),
1612
        'sodium_crypto_secretstream_xchacha20poly1305_init_push' => array(
1613
            '7.1' => false,
1614
            '7.2' => true,
1615
        ),
1616
        'sodium_crypto_secretstream_xchacha20poly1305_keygen' => array(
1617
            '7.1' => false,
1618
            '7.2' => true,
1619
        ),
1620
        'sodium_crypto_secretstream_xchacha20poly1305_pull' => array(
1621
            '7.1' => false,
1622
            '7.2' => true,
1623
        ),
1624
        'sodium_crypto_secretstream_xchacha20poly1305_push' => array(
1625
            '7.1' => false,
1626
            '7.2' => true,
1627
        ),
1628
        'sodium_crypto_secretstream_xchacha20poly1305_rekey' => array(
1629
            '7.1' => false,
1630
            '7.2' => true,
1631
        ),
1632
        'sodium_crypto_shorthash_keygen' => array(
1633
            '7.1' => false,
1634
            '7.2' => true,
1635
        ),
1636
        'sodium_crypto_shorthash' => array(
1637
            '7.1' => false,
1638
            '7.2' => true,
1639
        ),
1640
        'sodium_crypto_sign_detached' => array(
1641
            '7.1' => false,
1642
            '7.2' => true,
1643
        ),
1644
        'sodium_crypto_sign_ed25519_pk_to_curve25519' => array(
1645
            '7.1' => false,
1646
            '7.2' => true,
1647
        ),
1648
        'sodium_crypto_sign_ed25519_sk_to_curve25519' => array(
1649
            '7.1' => false,
1650
            '7.2' => true,
1651
        ),
1652
        'sodium_crypto_sign_keypair_from_secretkey_and_publickey' => array(
1653
            '7.1' => false,
1654
            '7.2' => true,
1655
        ),
1656
        'sodium_crypto_sign_keypair' => array(
1657
            '7.1' => false,
1658
            '7.2' => true,
1659
        ),
1660
        'sodium_crypto_sign_open' => array(
1661
            '7.1' => false,
1662
            '7.2' => true,
1663
        ),
1664
        'sodium_crypto_sign_publickey_from_secretkey' => array(
1665
            '7.1' => false,
1666
            '7.2' => true,
1667
        ),
1668
        'sodium_crypto_sign_publickey' => array(
1669
            '7.1' => false,
1670
            '7.2' => true,
1671
        ),
1672
        'sodium_crypto_sign_secretkey' => array(
1673
            '7.1' => false,
1674
            '7.2' => true,
1675
        ),
1676
        'sodium_crypto_sign_seed_keypair' => array(
1677
            '7.1' => false,
1678
            '7.2' => true,
1679
        ),
1680
        'sodium_crypto_sign_verify_detached' => array(
1681
            '7.1' => false,
1682
            '7.2' => true,
1683
        ),
1684
        'sodium_crypto_sign' => array(
1685
            '7.1' => false,
1686
            '7.2' => true,
1687
        ),
1688
        'sodium_crypto_stream_keygen' => array(
1689
            '7.1' => false,
1690
            '7.2' => true,
1691
        ),
1692
        'sodium_crypto_stream_xor' => array(
1693
            '7.1' => false,
1694
            '7.2' => true,
1695
        ),
1696
        'sodium_crypto_stream' => array(
1697
            '7.1' => false,
1698
            '7.2' => true,
1699
        ),
1700
        'sodium_hex2bin' => array(
1701
            '7.1' => false,
1702
            '7.2' => true,
1703
        ),
1704
        'sodium_increment' => array(
1705
            '7.1' => false,
1706
            '7.2' => true,
1707
        ),
1708
        'sodium_memcmp' => array(
1709
            '7.1' => false,
1710
            '7.2' => true,
1711
        ),
1712
        'sodium_memzero' => array(
1713
            '7.1' => false,
1714
            '7.2' => true,
1715
        ),
1716
        'sodium_pad' => array(
1717
            '7.1' => false,
1718
            '7.2' => true,
1719
        ),
1720
        'sodium_unpad' => array(
1721
            '7.1' => false,
1722
            '7.2' => true,
1723
        ),
1724
1725
        'is_countable' => array(
1726
            '7.2' => false,
1727
            '7.3' => true,
1728
        ),
1729
    );
1730
1731
1732
    /**
1733
     * Returns an array of tokens this test wants to listen for.
1734
     *
1735
     * @return array
1736
     */
1737
    public function register()
1738
    {
1739
        // Handle case-insensitivity of function names.
1740
        $this->newFunctions = $this->arrayKeysToLowercase($this->newFunctions);
1741
1742
        return array(T_STRING);
1743
1744
    }//end register()
1745
1746
    /**
1747
     * Processes this test, when one of its tokens is encountered.
1748
     *
1749
     * @param \PHP_CodeSniffer_File $phpcsFile The file being scanned.
1750
     * @param int                   $stackPtr  The position of the current token in
1751
     *                                         the stack passed in $tokens.
1752
     *
1753
     * @return void
1754
     */
1755
    public function process(\PHP_CodeSniffer_File $phpcsFile, $stackPtr)
1756
    {
1757
        $tokens = $phpcsFile->getTokens();
1758
1759
        $ignore = array(
1760
            T_DOUBLE_COLON,
1761
            T_OBJECT_OPERATOR,
1762
            T_FUNCTION,
1763
            T_CONST,
1764
        );
1765
1766
        $prevToken = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true);
1767 View Code Duplication
        if (in_array($tokens[$prevToken]['code'], $ignore) === true) {
1768
            // Not a call to a PHP function.
1769
            return;
1770
1771
        } elseif ($tokens[$prevToken]['code'] === T_NS_SEPARATOR && $tokens[$prevToken - 1]['code'] === T_STRING) {
1772
            // Namespaced function.
1773
            return;
1774
        }
1775
1776
        $function   = $tokens[$stackPtr]['content'];
1777
        $functionLc = strtolower($function);
1778
1779
        if (isset($this->newFunctions[$functionLc]) === false) {
1780
            return;
1781
        }
1782
1783
        $itemInfo = array(
1784
            'name'   => $function,
1785
            'nameLc' => $functionLc,
1786
        );
1787
        $this->handleFeature($phpcsFile, $stackPtr, $itemInfo);
1788
1789
    }//end process()
1790
1791
1792
    /**
1793
     * Get the relevant sub-array for a specific item from a multi-dimensional array.
1794
     *
1795
     * @param array $itemInfo Base information about the item.
1796
     *
1797
     * @return array Version and other information about the item.
1798
     */
1799
    public function getItemArray(array $itemInfo)
1800
    {
1801
        return $this->newFunctions[$itemInfo['nameLc']];
1802
    }
1803
1804
1805
    /**
1806
     * Get the error message template for this sniff.
1807
     *
1808
     * @return string
1809
     */
1810
    protected function getErrorMsgTemplate()
1811
    {
1812
        return 'The function %s() is not present in PHP version %s or earlier';
1813
    }
1814
1815
1816
}//end class
1817