Completed
Push — feature/new-constants-sniff ( 425a81 )
by Juliette
01:44
created

NewConstantsSniff::getItemArray()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
/**
3
 * \PHPCompatibility\Sniffs\PHP\NewConstantsSniff.
4
 *
5
 * @category PHP
6
 * @package  PHPCompatibility
7
 * @author   Juliette Reinders Folmer <[email protected]>
8
 */
9
10
namespace PHPCompatibility\Sniffs\PHP;
11
12
use PHPCompatibility\AbstractNewFeatureSniff;
13
14
/**
15
 * \PHPCompatibility\Sniffs\PHP\NewConstantsSniff.
16
 *
17
 * @category PHP
18
 * @package  PHPCompatibility
19
 * @author   Juliette Reinders Folmer <[email protected]>
20
 */
21
class NewConstantsSniff extends AbstractNewFeatureSniff
22
{
23
24
    /**
25
     * A list of new PHP Constants, not present in older versions.
26
     *
27
     * The array lists : version number with false (not present) or true (present).
28
     * If's sufficient to list the first version where the constant appears.
29
     *
30
     * Note: PHP Constants are case-sensitive!
31
     *
32
     * @var array(string => array(string => bool|string|null))
33
     */
34
    protected $newConstants = array(
35
        'E_STRICT' => array(
36
            '4.4' => false,
37
            '5.0' => true
38
        ),
39
        'CURLOPT_FTP_USE_EPRT' => array(
40
            '4.4' => false,
41
            '5.0' => true
42
        ),
43
        'CURLOPT_NOSIGNAL' => array(
44
            '4.4' => false,
45
            '5.0' => true
46
        ),
47
        'CURLOPT_UNRESTRICTED_AUTH' => array(
48
            '4.4' => false,
49
            '5.0' => true
50
        ),
51
        'CURLOPT_BUFFERSIZE' => array(
52
            '4.4' => false,
53
            '5.0' => true
54
        ),
55
        'CURLOPT_HTTPAUTH' => array(
56
            '4.4' => false,
57
            '5.0' => true
58
        ),
59
        'CURLOPT_PROXYPORT' => array(
60
            '4.4' => false,
61
            '5.0' => true
62
        ),
63
        'CURLOPT_PROXYTYPE' => array(
64
            '4.4' => false,
65
            '5.0' => true
66
        ),
67
        'CURLOPT_SSLCERTTYPE' => array(
68
            '4.4' => false,
69
            '5.0' => true
70
        ),
71
        'CURLOPT_HTTP200ALIASES' => array(
72
            '4.4' => false,
73
            '5.0' => true
74
        ),
75
76
        'SORT_LOCALE_STRING' => array(
77
            '5.0.1' => false,
78
            '5.0.2' => true
79
        ),
80
        'PHP_EOL' => array(
81
            '5.0.1' => false,
82
            '5.0.2' => true
83
        ),
84
85
        'PHP_INT_MAX' => array(
86
            '5.0.4' => false,
87
            '5.0.5' => true
88
        ),
89
        'PHP_INT_SIZE' => array(
90
            '5.0.4' => false,
91
            '5.0.5' => true
92
        ),
93
94
        '__COMPILER_HALT_OFFSET__' => array(
95
            '5.0' => false,
96
            '5.1' => true
97
        ),
98
        'GLOB_ERR' => array(
99
            '5.0' => false,
100
            '5.1' => true
101
        ),
102
        'CURLOPT_AUTOREFERER' => array(
103
            '5.0' => false,
104
            '5.1' => true
105
        ),
106
        'CURLOPT_BINARYTRANSFER' => array(
107
            '5.0' => false,
108
            '5.1' => true
109
        ),
110
        'CURLOPT_FTPSSLAUTH' => array(
111
            '5.0' => false,
112
            '5.1' => true
113
        ),
114
        'CURLOPT_PROXYAUTH' => array(
115
            '5.0' => false,
116
            '5.1' => true
117
        ),
118
        'CURLOPT_TIMECONDITION' => array(
119
            '5.0' => false,
120
            '5.1' => true
121
        ),
122
123
        'CURLINFO_HEADER_OUT' => array(
124
            '5.1.2' => false,
125
            '5.1.3' => true
126
        ),
127
128
        // Core:
129
        'E_RECOVERABLE_ERROR' => array(
130
            '5.1' => false,
131
            '5.2' => true
132
        ),
133
        'M_EULER' => array(
134
            '5.1' => false,
135
            '5.2' => true
136
        ),
137
        'M_LNPI' => array(
138
            '5.1' => false,
139
            '5.2' => true
140
        ),
141
        'M_SQRT3' => array(
142
            '5.1' => false,
143
            '5.2' => true
144
        ),
145
        'M_SQRTPI' => array(
146
            '5.1' => false,
147
            '5.2' => true
148
        ),
149
        'PATHINFO_FILENAME' => array(
150
            '5.1' => false,
151
            '5.2' => true
152
        ),
153
        'UPLOAD_ERR_EXTENSION' => array(
154
            '5.1' => false,
155
            '5.2' => true
156
        ),
157
        'STREAM_SHUT_RD' => array(
158
            '5.1' => false,
159
            '5.2' => true
160
        ),
161
        'STREAM_SHUT_WR' => array(
162
            '5.1' => false,
163
            '5.2' => true
164
        ),
165
        'STREAM_SHUT_RDWR' => array(
166
            '5.1' => false,
167
            '5.2' => true
168
        ),
169
        // Curl:
170
        'CURLE_FILESIZE_EXCEEDED' => array(
171
            '5.1' => false,
172
            '5.2' => true
173
        ),
174
        'CURLE_FTP_SSL_FAILED' => array(
175
            '5.1' => false,
176
            '5.2' => true
177
        ),
178
        'CURLE_LDAP_INVALID_URL' => array(
179
            '5.1' => false,
180
            '5.2' => true
181
        ),
182
        'CURLFTPAUTH_DEFAULT' => array(
183
            '5.1' => false,
184
            '5.2' => true
185
        ),
186
        'CURLFTPAUTH_SSL' => array(
187
            '5.1' => false,
188
            '5.2' => true
189
        ),
190
        'CURLFTPAUTH_TLS' => array(
191
            '5.1' => false,
192
            '5.2' => true
193
        ),
194
        'CURLFTPSSL_ALL' => array(
195
            '5.1' => false,
196
            '5.2' => true
197
        ),
198
        'CURLFTPSSL_CONTROL' => array(
199
            '5.1' => false,
200
            '5.2' => true
201
        ),
202
        'CURLFTPSSL_NONE' => array(
203
            '5.1' => false,
204
            '5.2' => true
205
        ),
206
        'CURLFTPSSL_TRY' => array(
207
            '5.1' => false,
208
            '5.2' => true
209
        ),
210
        'CURLOPT_FTP_SSL' => array(
211
            '5.1' => false,
212
            '5.2' => true
213
        ),
214
        // Ming:
215
        'SWFTEXTFIELD_USEFONT' => array(
216
            '5.1' => false,
217
            '5.2' => true
218
        ),
219
        'SWFTEXTFIELD_AUTOSIZE' => array(
220
            '5.1' => false,
221
            '5.2' => true
222
        ),
223
        'SWF_SOUND_NOT_COMPRESSED' => array(
224
            '5.1' => false,
225
            '5.2' => true
226
        ),
227
        'SWF_SOUND_ADPCM_COMPRESSED' => array(
228
            '5.1' => false,
229
            '5.2' => true
230
        ),
231
        'SWF_SOUND_MP3_COMPRESSED' => array(
232
            '5.1' => false,
233
            '5.2' => true
234
        ),
235
        'SWF_SOUND_NOT_COMPRESSED_LE' => array(
236
            '5.1' => false,
237
            '5.2' => true
238
        ),
239
        'SWF_SOUND_NELLY_COMPRESSED' => array(
240
            '5.1' => false,
241
            '5.2' => true
242
        ),
243
        'SWF_SOUND_5KHZ' => array(
244
            '5.1' => false,
245
            '5.2' => true
246
        ),
247
        'SWF_SOUND_11KHZ' => array(
248
            '5.1' => false,
249
            '5.2' => true
250
        ),
251
        'SWF_SOUND_22KHZ' => array(
252
            '5.1' => false,
253
            '5.2' => true
254
        ),
255
        'SWF_SOUND_44KHZ' => array(
256
            '5.1' => false,
257
            '5.2' => true
258
        ),
259
        'SWF_SOUND_8BITS' => array(
260
            '5.1' => false,
261
            '5.2' => true
262
        ),
263
        'SWF_SOUND_16BITS' => array(
264
            '5.1' => false,
265
            '5.2' => true
266
        ),
267
        'SWF_SOUND_MONO' => array(
268
            '5.1' => false,
269
            '5.2' => true
270
        ),
271
        'SWF_SOUND_STEREO' => array(
272
            '5.1' => false,
273
            '5.2' => true
274
        ),
275
        // OpenSSL:
276
        'OPENSSL_VERSION_NUMBER' => array(
277
            '5.1' => false,
278
            '5.2' => true
279
        ),
280
        'OPENSSL_VERSION_TEXT' => array(
281
            '5.1' => false,
282
            '5.2' => true
283
        ),
284
        // PCRE:
285
        'PREG_BACKTRACK_LIMIT_ERROR' => array(
286
            '5.1' => false,
287
            '5.2' => true
288
        ),
289
        'PREG_BAD_UTF8_ERROR' => array(
290
            '5.1' => false,
291
            '5.2' => true
292
        ),
293
        'PREG_INTERNAL_ERROR' => array(
294
            '5.1' => false,
295
            '5.2' => true
296
        ),
297
        'PREG_NO_ERROR' => array(
298
            '5.1' => false,
299
            '5.2' => true
300
        ),
301
        'PREG_RECURSION_LIMIT_ERROR' => array(
302
            '5.1' => false,
303
            '5.2' => true
304
        ),
305
        // Snmp:
306
        'SNMP_OID_OUTPUT_FULL' => array(
307
            '5.1' => false,
308
            '5.2' => true
309
        ),
310
        'SNMP_OID_OUTPUT_NUMERIC' => array(
311
            '5.1' => false,
312
            '5.2' => true
313
        ),
314
        // Semaphore:
315
        'MSG_EAGAIN' => array(
316
            '5.1' => false,
317
            '5.2' => true
318
        ),
319
        'MSG_ENOMSG' => array(
320
            '5.1' => false,
321
            '5.2' => true
322
        ),
323
324
        'CURLOPT_TCP_NODELAY' => array(
325
            '5.2.0' => false,
326
            '5.2.1' => true
327
        ),
328
329
        'GMP_VERSION' => array(
330
            '5.2.1' => false,
331
            '5.2.2' => true
332
        ),
333
334
        'CURLOPT_TIMEOUT_MS' => array(
335
            '5.2.2' => false,
336
            '5.2.3' => true
337
        ),
338
        'CURLOPT_CONNECTTIMEOUT_MS' => array(
339
            '5.2.2' => false,
340
            '5.2.3' => true
341
        ),
342
343
        'CURLOPT_PRIVATE' => array(
344
            '5.2.3' => false,
345
            '5.2.4' => true
346
        ),
347
        'CURLINFO_PRIVATE' => array(
348
            '5.2.3' => false,
349
            '5.2.4' => true
350
        ),
351
352
        'PHP_MAJOR_VERSION' => array(
353
            '5.2.6' => false,
354
            '5.2.7' => true
355
        ),
356
        'PHP_MINOR_VERSION' => array(
357
            '5.2.6' => false,
358
            '5.2.7' => true
359
        ),
360
        'PHP_RELEASE_VERSION' => array(
361
            '5.2.6' => false,
362
            '5.2.7' => true
363
        ),
364
        'PHP_VERSION_ID' => array(
365
            '5.2.6' => false,
366
            '5.2.7' => true
367
        ),
368
        'PHP_EXTRA_VERSION' => array(
369
            '5.2.6' => false,
370
            '5.2.7' => true
371
        ),
372
        'PHP_ZTS' => array(
373
            '5.2.6' => false,
374
            '5.2.7' => true
375
        ),
376
        'PHP_DEBUG' => array(
377
            '5.2.6' => false,
378
            '5.2.7' => true
379
        ),
380
381
        'CURLOPT_PROTOCOLS' => array(
382
            '5.2.9'  => false,
383
            '5.2.10' => true
384
        ),
385
        'CURLOPT_REDIR_PROTOCOLS' => array(
386
            '5.2.9'  => false,
387
            '5.2.10' => true
388
        ),
389
390
        // Core:
391
        'ENT_IGNORE' => array(
392
            '5.2' => false,
393
            '5.3' => true
394
        ),
395
        'E_DEPRECATED' => array(
396
            '5.2' => false,
397
            '5.3' => true
398
        ),
399
        'E_USER_DEPRECATED' => array(
400
            '5.2' => false,
401
            '5.3' => true
402
        ),
403
        'INI_SCANNER_NORMAL' => array(
404
            '5.2' => false,
405
            '5.3' => true
406
        ),
407
        'INI_SCANNER_RAW' => array(
408
            '5.2' => false,
409
            '5.3' => true
410
        ),
411
        'PHP_MAXPATHLEN' => array(
412
            '5.2' => false,
413
            '5.3' => true
414
        ),
415
        'PHP_WINDOWS_NT_DOMAIN_CONTROLLER' => array(
416
            '5.2' => false,
417
            '5.3' => true
418
        ),
419
        'PHP_WINDOWS_NT_SERVER' => array(
420
            '5.2' => false,
421
            '5.3' => true
422
        ),
423
        'PHP_WINDOWS_NT_WORKSTATION' => array(
424
            '5.2' => false,
425
            '5.3' => true
426
        ),
427
        'PHP_WINDOWS_VERSION_BUILD' => array(
428
            '5.2' => false,
429
            '5.3' => true
430
        ),
431
        'PHP_WINDOWS_VERSION_MAJOR' => array(
432
            '5.2' => false,
433
            '5.3' => true
434
        ),
435
        'PHP_WINDOWS_VERSION_MINOR' => array(
436
            '5.2' => false,
437
            '5.3' => true
438
        ),
439
        'PHP_WINDOWS_VERSION_PLATFORM' => array(
440
            '5.2' => false,
441
            '5.3' => true
442
        ),
443
        'PHP_WINDOWS_VERSION_PRODUCTTYPE' => array(
444
            '5.2' => false,
445
            '5.3' => true
446
        ),
447
        'PHP_WINDOWS_VERSION_SP_MAJOR' => array(
448
            '5.2' => false,
449
            '5.3' => true
450
        ),
451
        'PHP_WINDOWS_VERSION_SP_MINOR' => array(
452
            '5.2' => false,
453
            '5.3' => true
454
        ),
455
        'PHP_WINDOWS_VERSION_SUITEMASK' => array(
456
            '5.2' => false,
457
            '5.3' => true
458
        ),
459
        // Curl:
460
        'CURLINFO_CERTINFO' => array(
461
            '5.2' => false,
462
            '5.3' => true
463
        ),
464
        'CURLOPT_PROGRESSFUNCTION' => array(
465
            '5.2' => false,
466
            '5.3' => true
467
        ),
468
        // GD:
469
        'IMG_FILTER_PIXELATE' => array(
470
            '5.2' => false,
471
            '5.3' => true
472
        ),
473
        // JSON:
474
        'JSON_ERROR_CTRL_CHAR' => array(
475
            '5.2' => false,
476
            '5.3' => true
477
        ),
478
        'JSON_ERROR_DEPTH' => array(
479
            '5.2' => false,
480
            '5.3' => true
481
        ),
482
        'JSON_ERROR_NONE' => array(
483
            '5.2' => false,
484
            '5.3' => true
485
        ),
486
        'JSON_ERROR_STATE_MISMATCH' => array(
487
            '5.2' => false,
488
            '5.3' => true
489
        ),
490
        'JSON_ERROR_SYNTAX' => array(
491
            '5.2' => false,
492
            '5.3' => true
493
        ),
494
        'JSON_FORCE_OBJECT' => array(
495
            '5.2' => false,
496
            '5.3' => true
497
        ),
498
        'JSON_HEX_TAG' => array(
499
            '5.2' => false,
500
            '5.3' => true
501
        ),
502
        'JSON_HEX_AMP' => array(
503
            '5.2' => false,
504
            '5.3' => true
505
        ),
506
        'JSON_HEX_APOS' => array(
507
            '5.2' => false,
508
            '5.3' => true
509
        ),
510
        'JSON_HEX_QUOT' => array(
511
            '5.2' => false,
512
            '5.3' => true
513
        ),
514
        // LDAP:
515
        'LDAP_OPT_NETWORK_TIMEOUT' => array(
516
            '5.2' => false,
517
            '5.3' => true
518
        ),
519
        // libxml:
520
        'LIBXML_LOADED_VERSION' => array(
521
            '5.2' => false,
522
            '5.3' => true
523
        ),
524
        // Mysqli
525
        'MYSQLI_OPT_INT_AND_FLOAT_NATIVE' => array(
526
            '5.2' => false,
527
            '5.3' => true
528
        ),
529
        'MYSQLI_OPT_NET_CMD_BUFFER_SIZE' => array(
530
            '5.2' => false,
531
            '5.3' => true
532
        ),
533
        'MYSQLI_OPT_NET_READ_BUFFER_SIZE' => array(
534
            '5.2' => false,
535
            '5.3' => true
536
        ),
537
        'MYSQLI_OPT_SSL_VERIFY_SERVER_CERT' => array(
538
            '5.2' => false,
539
            '5.3' => true
540
        ),
541
        // PCRE:
542
        'PREG_BAD_UTF8_OFFSET_ERROR' => array(
543
            '5.2' => false,
544
            '5.3' => true
545
        ),
546
        // PCNTL:
547
        'BUS_ADRALN' => array(
548
            '5.2' => false,
549
            '5.3' => true
550
        ),
551
        'BUS_ADRERR' => array(
552
            '5.2' => false,
553
            '5.3' => true
554
        ),
555
        'BUS_OBJERR' => array(
556
            '5.2' => false,
557
            '5.3' => true
558
        ),
559
        'CLD_CONTIUNED' => array(
560
            '5.2' => false,
561
            '5.3' => true
562
        ),
563
        'CLD_DUMPED' => array(
564
            '5.2' => false,
565
            '5.3' => true
566
        ),
567
        'CLD_EXITED' => array(
568
            '5.2' => false,
569
            '5.3' => true
570
        ),
571
        'CLD_KILLED' => array(
572
            '5.2' => false,
573
            '5.3' => true
574
        ),
575
        'CLD_STOPPED' => array(
576
            '5.2' => false,
577
            '5.3' => true
578
        ),
579
        'CLD_TRAPPED' => array(
580
            '5.2' => false,
581
            '5.3' => true
582
        ),
583
        'FPE_FLTDIV' => array(
584
            '5.2' => false,
585
            '5.3' => true
586
        ),
587
        'FPE_FLTINV' => array(
588
            '5.2' => false,
589
            '5.3' => true
590
        ),
591
        'FPE_FLTOVF' => array(
592
            '5.2' => false,
593
            '5.3' => true
594
        ),
595
        'FPE_FLTRES' => array(
596
            '5.2' => false,
597
            '5.3' => true
598
        ),
599
        'FPE_FLTSUB' => array(
600
            '5.2' => false,
601
            '5.3' => true
602
        ),
603
        'FPE_FLTUND' => array(
604
            '5.2' => false,
605
            '5.3' => true
606
        ),
607
        'FPE_INTDIV' => array(
608
            '5.2' => false,
609
            '5.3' => true
610
        ),
611
        'FPE_INTOVF' => array(
612
            '5.2' => false,
613
            '5.3' => true
614
        ),
615
        'ILL_BADSTK' => array(
616
            '5.2' => false,
617
            '5.3' => true
618
        ),
619
        'ILL_COPROC' => array(
620
            '5.2' => false,
621
            '5.3' => true
622
        ),
623
        'ILL_ILLADR' => array(
624
            '5.2' => false,
625
            '5.3' => true
626
        ),
627
        'ILL_ILLOPC' => array(
628
            '5.2' => false,
629
            '5.3' => true
630
        ),
631
        'ILL_ILLOPN' => array(
632
            '5.2' => false,
633
            '5.3' => true
634
        ),
635
        'ILL_ILLTRP' => array(
636
            '5.2' => false,
637
            '5.3' => true
638
        ),
639
        'ILL_PRVOPC' => array(
640
            '5.2' => false,
641
            '5.3' => true
642
        ),
643
        'ILL_PRVREG' => array(
644
            '5.2' => false,
645
            '5.3' => true
646
        ),
647
        'POLL_ERR' => array(
648
            '5.2' => false,
649
            '5.3' => true
650
        ),
651
        'POLL_HUP' => array(
652
            '5.2' => false,
653
            '5.3' => true
654
        ),
655
        'POLL_IN' => array(
656
            '5.2' => false,
657
            '5.3' => true
658
        ),
659
        'POLL_MSG' => array(
660
            '5.2' => false,
661
            '5.3' => true
662
        ),
663
        'POLL_OUT' => array(
664
            '5.2' => false,
665
            '5.3' => true
666
        ),
667
        'POLL_PRI' => array(
668
            '5.2' => false,
669
            '5.3' => true
670
        ),
671
        'SEGV_ACCERR' => array(
672
            '5.2' => false,
673
            '5.3' => true
674
        ),
675
        'SEGV_MAPERR' => array(
676
            '5.2' => false,
677
            '5.3' => true
678
        ),
679
        'SI_ASYNCIO' => array(
680
            '5.2' => false,
681
            '5.3' => true
682
        ),
683
        'SI_KERNEL' => array(
684
            '5.2' => false,
685
            '5.3' => true
686
        ),
687
        'SI_MESGQ' => array(
688
            '5.2' => false,
689
            '5.3' => true
690
        ),
691
        'SI_NOINFO' => array(
692
            '5.2' => false,
693
            '5.3' => true
694
        ),
695
        'SI_QUEUE' => array(
696
            '5.2' => false,
697
            '5.3' => true
698
        ),
699
        'SI_SIGIO' => array(
700
            '5.2' => false,
701
            '5.3' => true
702
        ),
703
        'SI_TIMER' => array(
704
            '5.2' => false,
705
            '5.3' => true
706
        ),
707
        'SI_TKILL' => array(
708
            '5.2' => false,
709
            '5.3' => true
710
        ),
711
        'SI_USER' => array(
712
            '5.2' => false,
713
            '5.3' => true
714
        ),
715
        'SIG_BLOCK' => array(
716
            '5.2' => false,
717
            '5.3' => true
718
        ),
719
        'SIG_SETMASK' => array(
720
            '5.2' => false,
721
            '5.3' => true
722
        ),
723
        'SIG_UNBLOCK' => array(
724
            '5.2' => false,
725
            '5.3' => true
726
        ),
727
        'TRAP_BRKPT' => array(
728
            '5.2' => false,
729
            '5.3' => true
730
        ),
731
        'TRAP_TRACE' => array(
732
            '5.2' => false,
733
            '5.3' => true
734
        ),
735
736
        'JSON_NUMERIC_CHECK' => array(
737
            '5.3.2' => false,
738
            '5.3.3' => true
739
        ),
740
741
        'DEBUG_BACKTRACE_IGNORE_ARGS' => array(
742
            '5.3.5' => false,
743
            '5.3.6' => true
744
        ),
745
746
        'CURLINFO_REDIRECT_URL' => array(
747
            '5.3.6' => false,
748
            '5.3.7' => true
749
        ),
750
        'PHP_MANDIR' => array(
751
            '5.3.6' => false,
752
            '5.3.7' => true
753
        ),
754
755
        'PHP_BINARY' => array(
756
            '5.3' => false,
757
            '5.4' => true
758
        ),
759
        'SORT_NATURAL' => array(
760
            '5.3' => false,
761
            '5.4' => true
762
        ),
763
        'SORT_FLAG_CASE' => array(
764
            '5.3' => false,
765
            '5.4' => true
766
        ),
767
        'ENT_HTML401' => array(
768
            '5.3' => false,
769
            '5.4' => true
770
        ),
771
        'ENT_XML1' => array(
772
            '5.3' => false,
773
            '5.4' => true
774
        ),
775
        'ENT_XHTML' => array(
776
            '5.3' => false,
777
            '5.4' => true
778
        ),
779
        'ENT_HTML5' => array(
780
            '5.3' => false,
781
            '5.4' => true
782
        ),
783
        'ENT_SUBSTITUTE' => array(
784
            '5.3' => false,
785
            '5.4' => true
786
        ),
787
        'ENT_DISALLOWED' => array(
788
            '5.3' => false,
789
            '5.4' => true
790
        ),
791
        'IPPROTO_IP' => array(
792
            '5.3' => false,
793
            '5.4' => true
794
        ),
795
        'IPPROTO_IPV6' => array(
796
            '5.3' => false,
797
            '5.4' => true
798
        ),
799
        'IPV6_MULTICAST_HOPS' => array(
800
            '5.3' => false,
801
            '5.4' => true
802
        ),
803
        'IPV6_MULTICAST_IF' => array(
804
            '5.3' => false,
805
            '5.4' => true
806
        ),
807
        'IPV6_MULTICAST_LOOP' => array(
808
            '5.3' => false,
809
            '5.4' => true
810
        ),
811
        'IP_MULTICAST_IF' => array(
812
            '5.3' => false,
813
            '5.4' => true
814
        ),
815
        'IP_MULTICAST_LOOP' => array(
816
            '5.3' => false,
817
            '5.4' => true
818
        ),
819
        'IP_MULTICAST_TTL' => array(
820
            '5.3' => false,
821
            '5.4' => true
822
        ),
823
        'MCAST_JOIN_GROUP' => array(
824
            '5.3' => false,
825
            '5.4' => true
826
        ),
827
        'MCAST_LEAVE_GROUP' => array(
828
            '5.3' => false,
829
            '5.4' => true
830
        ),
831
        'MCAST_BLOCK_SOURCE' => array(
832
            '5.3' => false,
833
            '5.4' => true
834
        ),
835
        'MCAST_UNBLOCK_SOURCE' => array(
836
            '5.3' => false,
837
            '5.4' => true
838
        ),
839
        'MCAST_JOIN_SOURCE_GROUP' => array(
840
            '5.3' => false,
841
            '5.4' => true
842
        ),
843
        'MCAST_LEAVE_SOURCE_GROUP' => array(
844
            '5.3' => false,
845
            '5.4' => true
846
        ),
847
        // Curl:
848
        'CURLOPT_MAX_RECV_SPEED_LARGE' => array(
849
            '5.3' => false,
850
            '5.4' => true
851
        ),
852
        'CURLOPT_MAX_SEND_SPEED_LARGE' => array(
853
            '5.3' => false,
854
            '5.4' => true
855
        ),
856
        // LibXML:
857
        'LIBXML_HTML_NODEFDTD' => array(
858
            '5.3' => false,
859
            '5.4' => true
860
        ),
861
        'LIBXML_HTML_NOIMPLIED' => array(
862
            '5.3' => false,
863
            '5.4' => true
864
        ),
865
        'LIBXML_PEDANTIC' => array(
866
            '5.3' => false,
867
            '5.4' => true
868
        ),
869
        // OpenSSL:
870
        'OPENSSL_CIPHER_AES_128_CBC' => array(
871
            '5.3' => false,
872
            '5.4' => true
873
        ),
874
        'OPENSSL_CIPHER_AES_192_CBC' => array(
875
            '5.3' => false,
876
            '5.4' => true
877
        ),
878
        'OPENSSL_CIPHER_AES_256_CBC' => array(
879
            '5.3' => false,
880
            '5.4' => true
881
        ),
882
        'OPENSSL_RAW_DATA' => array(
883
            '5.3' => false,
884
            '5.4' => true
885
        ),
886
        'OPENSSL_ZERO_PADDING' => array(
887
            '5.3' => false,
888
            '5.4' => true
889
        ),
890
        // Output buffering:
891
        'PHP_OUTPUT_HANDLER_CLEAN' => array(
892
            '5.3' => false,
893
            '5.4' => true
894
        ),
895
        'PHP_OUTPUT_HANDLER_CLEANABLE' => array(
896
            '5.3' => false,
897
            '5.4' => true
898
        ),
899
        'PHP_OUTPUT_HANDLER_DISABLED' => array(
900
            '5.3' => false,
901
            '5.4' => true
902
        ),
903
        'PHP_OUTPUT_HANDLER_FINAL' => array(
904
            '5.3' => false,
905
            '5.4' => true
906
        ),
907
        'PHP_OUTPUT_HANDLER_FLUSH' => array(
908
            '5.3' => false,
909
            '5.4' => true
910
        ),
911
        'PHP_OUTPUT_HANDLER_FLUSHABLE' => array(
912
            '5.3' => false,
913
            '5.4' => true
914
        ),
915
        'PHP_OUTPUT_HANDLER_REMOVABLE' => array(
916
            '5.3' => false,
917
            '5.4' => true
918
        ),
919
        'PHP_OUTPUT_HANDLER_STARTED' => array(
920
            '5.3' => false,
921
            '5.4' => true
922
        ),
923
        'PHP_OUTPUT_HANDLER_STDFLAGS' => array(
924
            '5.3' => false,
925
            '5.4' => true
926
        ),
927
        'PHP_OUTPUT_HANDLER_WRITE' => array(
928
            '5.3' => false,
929
            '5.4' => true
930
        ),
931
        // Sessions:
932
        'PHP_SESSION_ACTIVE' => array(
933
            '5.3' => false,
934
            '5.4' => true
935
        ),
936
        'PHP_SESSION_DISABLED' => array(
937
            '5.3' => false,
938
            '5.4' => true
939
        ),
940
        'PHP_SESSION_NONE' => array(
941
            '5.3' => false,
942
            '5.4' => true
943
        ),
944
        // Streams:
945
        'STREAM_META_ACCESS' => array(
946
            '5.3' => false,
947
            '5.4' => true
948
        ),
949
        'STREAM_META_GROUP' => array(
950
            '5.3' => false,
951
            '5.4' => true
952
        ),
953
        'STREAM_META_GROUP_NAME' => array(
954
            '5.3' => false,
955
            '5.4' => true
956
        ),
957
        'STREAM_META_OWNER' => array(
958
            '5.3' => false,
959
            '5.4' => true
960
        ),
961
        'STREAM_META_OWNER_NAME' => array(
962
            '5.3' => false,
963
            '5.4' => true
964
        ),
965
        'STREAM_META_TOUCH' => array(
966
            '5.3' => false,
967
            '5.4' => true
968
        ),
969
        // Intl:
970
        'U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR' => array(
971
            '5.3' => false,
972
            '5.4' => true
973
        ),
974
        'IDNA_CHECK_BIDI' => array(
975
            '5.3' => false,
976
            '5.4' => true
977
        ),
978
        'IDNA_CHECK_CONTEXTJ' => array(
979
            '5.3' => false,
980
            '5.4' => true
981
        ),
982
        'IDNA_NONTRANSITIONAL_TO_ASCII' => array(
983
            '5.3' => false,
984
            '5.4' => true
985
        ),
986
        'IDNA_NONTRANSITIONAL_TO_UNICODE' => array(
987
            '5.3' => false,
988
            '5.4' => true
989
        ),
990
        'INTL_IDNA_VARIANT_2003' => array(
991
            '5.3' => false,
992
            '5.4' => true
993
        ),
994
        'INTL_IDNA_VARIANT_UTS46' => array(
995
            '5.3' => false,
996
            '5.4' => true
997
        ),
998
        'IDNA_ERROR_EMPTY_LABEL' => array(
999
            '5.3' => false,
1000
            '5.4' => true
1001
        ),
1002
        'IDNA_ERROR_LABEL_TOO_LONG' => array(
1003
            '5.3' => false,
1004
            '5.4' => true
1005
        ),
1006
        'IDNA_ERROR_DOMAIN_NAME_TOO_LONG' => array(
1007
            '5.3' => false,
1008
            '5.4' => true
1009
        ),
1010
        'IDNA_ERROR_LEADING_HYPHEN' => array(
1011
            '5.3' => false,
1012
            '5.4' => true
1013
        ),
1014
        'IDNA_ERROR_TRAILING_HYPHEN' => array(
1015
            '5.3' => false,
1016
            '5.4' => true
1017
        ),
1018
        'IDNA_ERROR_HYPHEN_3_4' => array(
1019
            '5.3' => false,
1020
            '5.4' => true
1021
        ),
1022
        'IDNA_ERROR_LEADING_COMBINING_MARK' => array(
1023
            '5.3' => false,
1024
            '5.4' => true
1025
        ),
1026
        'IDNA_ERROR_DISALLOWED' => array(
1027
            '5.3' => false,
1028
            '5.4' => true
1029
        ),
1030
        'IDNA_ERROR_PUNYCODE' => array(
1031
            '5.3' => false,
1032
            '5.4' => true
1033
        ),
1034
        'IDNA_ERROR_LABEL_HAS_DOT' => array(
1035
            '5.3' => false,
1036
            '5.4' => true
1037
        ),
1038
        'IDNA_ERROR_INVALID_ACE_LABEL' => array(
1039
            '5.3' => false,
1040
            '5.4' => true
1041
        ),
1042
        'IDNA_ERROR_BIDI' => array(
1043
            '5.3' => false,
1044
            '5.4' => true
1045
        ),
1046
        'IDNA_ERROR_CONTEXTJ' => array(
1047
            '5.3' => false,
1048
            '5.4' => true
1049
        ),
1050
        // Json:
1051
        'JSON_PRETTY_PRINT' => array(
1052
            '5.3' => false,
1053
            '5.4' => true
1054
        ),
1055
        'JSON_UNESCAPED_SLASHES' => array(
1056
            '5.3' => false,
1057
            '5.4' => true
1058
        ),
1059
        'JSON_UNESCAPED_UNICODE' => array(
1060
            '5.3' => false,
1061
            '5.4' => true
1062
        ),
1063
        'JSON_BIGINT_AS_STRING' => array(
1064
            '5.3' => false,
1065
            '5.4' => true
1066
        ),
1067
1068
        'CURLINFO_PRIMARY_IP' => array(
1069
            '5.4.6' => false,
1070
            '5.4.7' => true
1071
        ),
1072
        'CURLINFO_PRIMARY_PORT' => array(
1073
            '5.4.6' => false,
1074
            '5.4.7' => true
1075
        ),
1076
        'CURLINFO_LOCAL_IP' => array(
1077
            '5.4.6' => false,
1078
            '5.4.7' => true
1079
        ),
1080
        'CURLINFO_LOCAL_PORT' => array(
1081
            '5.4.6' => false,
1082
            '5.4.7' => true
1083
        ),
1084
1085
        // GD
1086
        'IMG_AFFINE_TRANSLATE' => array(
1087
            '5.4' => false,
1088
            '5.5' => true
1089
        ),
1090
        'IMG_AFFINE_SCALE' => array(
1091
            '5.4' => false,
1092
            '5.5' => true
1093
        ),
1094
        'IMG_AFFINE_ROTATE' => array(
1095
            '5.4' => false,
1096
            '5.5' => true
1097
        ),
1098
        'IMG_AFFINE_SHEAR_HORIZONTAL' => array(
1099
            '5.4' => false,
1100
            '5.5' => true
1101
        ),
1102
        'IMG_AFFINE_SHEAR_VERTICAL' => array(
1103
            '5.4' => false,
1104
            '5.5' => true
1105
        ),
1106
        'IMG_CROP_DEFAULT' => array(
1107
            '5.4' => false,
1108
            '5.5' => true
1109
        ),
1110
        'IMG_CROP_TRANSPARENT' => array(
1111
            '5.4' => false,
1112
            '5.5' => true
1113
        ),
1114
        'IMG_CROP_BLACK' => array(
1115
            '5.4' => false,
1116
            '5.5' => true
1117
        ),
1118
        'IMG_CROP_WHITE' => array(
1119
            '5.4' => false,
1120
            '5.5' => true
1121
        ),
1122
        'IMG_CROP_SIDES' => array(
1123
            '5.4' => false,
1124
            '5.5' => true
1125
        ),
1126
        'IMG_FLIP_BOTH' => array(
1127
            '5.4' => false,
1128
            '5.5' => true
1129
        ),
1130
        'IMG_FLIP_HORIZONTAL' => array(
1131
            '5.4' => false,
1132
            '5.5' => true
1133
        ),
1134
        'IMG_FLIP_VERTICAL' => array(
1135
            '5.4' => false,
1136
            '5.5' => true
1137
        ),
1138
        'IMG_BELL' => array(
1139
            '5.4' => false,
1140
            '5.5' => true
1141
        ),
1142
        'IMG_BESSEL' => array(
1143
            '5.4' => false,
1144
            '5.5' => true
1145
        ),
1146
        'IMG_BICUBIC' => array(
1147
            '5.4' => false,
1148
            '5.5' => true
1149
        ),
1150
        'IMG_BICUBIC_FIXED' => array(
1151
            '5.4' => false,
1152
            '5.5' => true
1153
        ),
1154
        'IMG_BLACKMAN' => array(
1155
            '5.4' => false,
1156
            '5.5' => true
1157
        ),
1158
        'IMG_BOX' => array(
1159
            '5.4' => false,
1160
            '5.5' => true
1161
        ),
1162
        'IMG_BSPLINE' => array(
1163
            '5.4' => false,
1164
            '5.5' => true
1165
        ),
1166
        'IMG_CATMULLROM' => array(
1167
            '5.4' => false,
1168
            '5.5' => true
1169
        ),
1170
        'IMG_GAUSSIAN' => array(
1171
            '5.4' => false,
1172
            '5.5' => true
1173
        ),
1174
        'IMG_GENERALIZED_CUBIC' => array(
1175
            '5.4' => false,
1176
            '5.5' => true
1177
        ),
1178
        'IMG_HERMITE' => array(
1179
            '5.4' => false,
1180
            '5.5' => true
1181
        ),
1182
        'IMG_HAMMING' => array(
1183
            '5.4' => false,
1184
            '5.5' => true
1185
        ),
1186
        'IMG_HANNING' => array(
1187
            '5.4' => false,
1188
            '5.5' => true
1189
        ),
1190
        'IMG_MITCHELL' => array(
1191
            '5.4' => false,
1192
            '5.5' => true
1193
        ),
1194
        'IMG_POWER' => array(
1195
            '5.4' => false,
1196
            '5.5' => true
1197
        ),
1198
        'IMG_QUADRATIC' => array(
1199
            '5.4' => false,
1200
            '5.5' => true
1201
        ),
1202
        'IMG_SINC' => array(
1203
            '5.4' => false,
1204
            '5.5' => true
1205
        ),
1206
        'IMG_NEAREST_NEIGHBOUR' => array(
1207
            '5.4' => false,
1208
            '5.5' => true
1209
        ),
1210
        'IMG_WEIGHTED4' => array(
1211
            '5.4' => false,
1212
            '5.5' => true
1213
        ),
1214
        'IMG_TRIANGLE' => array(
1215
            '5.4' => false,
1216
            '5.5' => true
1217
        ),
1218
        // JSON:
1219
        'JSON_ERROR_RECURSION' => array(
1220
            '5.4' => false,
1221
            '5.5' => true
1222
        ),
1223
        'JSON_ERROR_INF_OR_NAN' => array(
1224
            '5.4' => false,
1225
            '5.5' => true
1226
        ),
1227
        'JSON_ERROR_UNSUPPORTED_TYPE' => array(
1228
            '5.4' => false,
1229
            '5.5' => true
1230
        ),
1231
        // MySQLi
1232
        'MYSQLI_SERVER_PUBLIC_KEY' => array(
1233
            '5.4' => false,
1234
            '5.5' => true
1235
        ),
1236
        // Curl:
1237
        'CURLOPT_SHARE' => array(
1238
            '5.4' => false,
1239
            '5.5' => true
1240
        ),
1241
        'CURLINFO_RESPONSE_CODE' => array(
1242
            '5.4' => false,
1243
            '5.5' => true
1244
        ),
1245
        'CURLINFO_HTTP_CONNECTCODE' => array(
1246
            '5.4' => false,
1247
            '5.5' => true
1248
        ),
1249
        'CURLINFO_HTTPAUTH_AVAIL' => array(
1250
            '5.4' => false,
1251
            '5.5' => true
1252
        ),
1253
        'CURLINFO_PROXYAUTH_AVAIL' => array(
1254
            '5.4' => false,
1255
            '5.5' => true
1256
        ),
1257
        'CURLINFO_OS_ERRNO' => array(
1258
            '5.4' => false,
1259
            '5.5' => true
1260
        ),
1261
        'CURLINFO_NUM_CONNECTS' => array(
1262
            '5.4' => false,
1263
            '5.5' => true
1264
        ),
1265
        'CURLINFO_SSL_ENGINES' => array(
1266
            '5.4' => false,
1267
            '5.5' => true
1268
        ),
1269
        'CURLINFO_COOKIELIST' => array(
1270
            '5.4' => false,
1271
            '5.5' => true
1272
        ),
1273
        'CURLINFO_FTP_ENTRY_PATH' => array(
1274
            '5.4' => false,
1275
            '5.5' => true
1276
        ),
1277
        'CURLINFO_APPCONNECT_TIME' => array(
1278
            '5.4' => false,
1279
            '5.5' => true
1280
        ),
1281
        'CURLINFO_CONDITION_UNMET' => array(
1282
            '5.4' => false,
1283
            '5.5' => true
1284
        ),
1285
        'CURLINFO_RTSP_CLIENT_CSEQ' => array(
1286
            '5.4' => false,
1287
            '5.5' => true
1288
        ),
1289
        'CURLINFO_RTSP_CSEQ_RECV' => array(
1290
            '5.4' => false,
1291
            '5.5' => true
1292
        ),
1293
        'CURLINFO_RTSP_SERVER_CSEQ' => array(
1294
            '5.4' => false,
1295
            '5.5' => true
1296
        ),
1297
        'CURLINFO_RTSP_SESSION_ID' => array(
1298
            '5.4' => false,
1299
            '5.5' => true
1300
        ),
1301
1302
        'ARRAY_FILTER_USE_KEY' => array(
1303
            '5.5' => false,
1304
            '5.6' => true
1305
        ),
1306
        'ARRAY_FILTER_USE_BOTH' => array(
1307
            '5.5' => false,
1308
            '5.6' => true
1309
        ),
1310
        // LDAP:
1311
        'LDAP_ESCAPE_DN' => array(
1312
            '5.5' => false,
1313
            '5.6' => true
1314
        ),
1315
        'LDAP_ESCAPE_FILTER' => array(
1316
            '5.5' => false,
1317
            '5.6' => true
1318
        ),
1319
        // OpenSSL:
1320
        'OPENSSL_DEFAULT_STREAM_CIPHERS' => array(
1321
            '5.5' => false,
1322
            '5.6' => true
1323
        ),
1324
        'STREAM_CRYPTO_METHOD_ANY_CLIENT' => array(
1325
            '5.5' => false,
1326
            '5.6' => true
1327
        ),
1328
        'STREAM_CRYPTO_METHOD_ANY_SERVER' => array(
1329
            '5.5' => false,
1330
            '5.6' => true
1331
        ),
1332
        'STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT' => array(
1333
            '5.5' => false,
1334
            '5.6' => true
1335
        ),
1336
        'STREAM_CRYPTO_METHOD_TLSv1_0_SERVER' => array(
1337
            '5.5' => false,
1338
            '5.6' => true
1339
        ),
1340
        'STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT' => array(
1341
            '5.5' => false,
1342
            '5.6' => true
1343
        ),
1344
        'STREAM_CRYPTO_METHOD_TLSv1_1_SERVER' => array(
1345
            '5.5' => false,
1346
            '5.6' => true
1347
        ),
1348
        'STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT' => array(
1349
            '5.5' => false,
1350
            '5.6' => true
1351
        ),
1352
        'STREAM_CRYPTO_METHOD_TLSv1_2_SERVER' => array(
1353
            '5.5' => false,
1354
            '5.6' => true
1355
        ),
1356
        // PostgreSQL:
1357
        'PGSQL_CONNECT_ASYNC' => array(
1358
            '5.5' => false,
1359
            '5.6' => true
1360
        ),
1361
        'PGSQL_CONNECTION_AUTH_OK' => array(
1362
            '5.5' => false,
1363
            '5.6' => true
1364
        ),
1365
        'PGSQL_CONNECTION_AWAITING_RESPONSE' => array(
1366
            '5.5' => false,
1367
            '5.6' => true
1368
        ),
1369
        'PGSQL_CONNECTION_MADE' => array(
1370
            '5.5' => false,
1371
            '5.6' => true
1372
        ),
1373
        'PGSQL_CONNECTION_SETENV' => array(
1374
            '5.5' => false,
1375
            '5.6' => true
1376
        ),
1377
        'PGSQL_CONNECTION_SSL_STARTUP' => array(
1378
            '5.5' => false,
1379
            '5.6' => true
1380
        ),
1381
        'PGSQL_CONNECTION_STARTED' => array(
1382
            '5.5' => false,
1383
            '5.6' => true
1384
        ),
1385
        'PGSQL_DML_ESCAPE' => array(
1386
            '5.5' => false,
1387
            '5.6' => true
1388
        ),
1389
        'PGSQL_POLLING_ACTIVE' => array(
1390
            '5.5' => false,
1391
            '5.6' => true
1392
        ),
1393
        'PGSQL_POLLING_FAILED' => array(
1394
            '5.5' => false,
1395
            '5.6' => true
1396
        ),
1397
        'PGSQL_POLLING_OK' => array(
1398
            '5.5' => false,
1399
            '5.6' => true
1400
        ),
1401
        'PGSQL_POLLING_READING' => array(
1402
            '5.5' => false,
1403
            '5.6' => true
1404
        ),
1405
        'PGSQL_POLLING_WRITING' => array(
1406
            '5.5' => false,
1407
            '5.6' => true
1408
        ),
1409
1410
        'INI_SCANNER_TYPED' => array(
1411
            '5.6.0' => false,
1412
            '5.6.1' => true
1413
        ),
1414
1415
        'JSON_PRESERVE_ZERO_FRACTION' => array(
1416
            '5.6.5' => false,
1417
            '5.6.6' => true
1418
        ),
1419
1420
        'MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT' => array(
1421
            '5.6.15' => false,
1422
            '5.6.16' => true
1423
        ),
1424
1425
        // GD:
1426
        // Also introduced in 7.0.10.
1427
        'IMG_WEBP' => array(
1428
            '5.6.24' => false,
1429
            '5.6.25' => true
1430
        ),
1431
1432
1433
        'TOKEN_PARSE' => array(
1434
            '5.6' => false,
1435
            '7.0' => true
1436
        ),
1437
        'FILTER_VALIDATE_DOMAIN' => array(
1438
            '5.6' => false,
1439
            '7.0' => true
1440
        ),
1441
        'PHP_INT_MIN' => array(
1442
            '5.6' => false,
1443
            '7.0' => true
1444
        ),
1445
        // JSON:
1446
        'JSON_ERROR_INVALID_PROPERTY_NAME' => array(
1447
            '5.6' => false,
1448
            '7.0' => true
1449
        ),
1450
        'JSON_ERROR_UTF16' => array(
1451
            '5.6' => false,
1452
            '7.0' => true
1453
        ),
1454
        // LibXML:
1455
        'LIBXML_BIGLINES' => array(
1456
            '5.6' => false,
1457
            '7.0' => true
1458
        ),
1459
        // PCRE:
1460
        'PREG_JIT_STACKLIMIT_ERROR' => array(
1461
            '5.6' => false,
1462
            '7.0' => true
1463
        ),
1464
        // POSIX:
1465
        'POSIX_RLIMIT_AS' => array(
1466
            '5.6' => false,
1467
            '7.0' => true
1468
        ),
1469
        'POSIX_RLIMIT_CORE' => array(
1470
            '5.6' => false,
1471
            '7.0' => true
1472
        ),
1473
        'POSIX_RLIMIT_CPU' => array(
1474
            '5.6' => false,
1475
            '7.0' => true
1476
        ),
1477
        'POSIX_RLIMIT_DATA' => array(
1478
            '5.6' => false,
1479
            '7.0' => true
1480
        ),
1481
        'POSIX_RLIMIT_FSIZE' => array(
1482
            '5.6' => false,
1483
            '7.0' => true
1484
        ),
1485
        'POSIX_RLIMIT_LOCKS' => array(
1486
            '5.6' => false,
1487
            '7.0' => true
1488
        ),
1489
        'POSIX_RLIMIT_MEMLOCK' => array(
1490
            '5.6' => false,
1491
            '7.0' => true
1492
        ),
1493
        'POSIX_RLIMIT_MSGQUEUE' => array(
1494
            '5.6' => false,
1495
            '7.0' => true
1496
        ),
1497
        'POSIX_RLIMIT_NICE' => array(
1498
            '5.6' => false,
1499
            '7.0' => true
1500
        ),
1501
        'POSIX_RLIMIT_NOFILE' => array(
1502
            '5.6' => false,
1503
            '7.0' => true
1504
        ),
1505
        'POSIX_RLIMIT_NPROC' => array(
1506
            '5.6' => false,
1507
            '7.0' => true
1508
        ),
1509
        'POSIX_RLIMIT_RSS' => array(
1510
            '5.6' => false,
1511
            '7.0' => true
1512
        ),
1513
        'POSIX_RLIMIT_RTPRIO' => array(
1514
            '5.6' => false,
1515
            '7.0' => true
1516
        ),
1517
        'POSIX_RLIMIT_RTTIME' => array(
1518
            '5.6' => false,
1519
            '7.0' => true
1520
        ),
1521
        'POSIX_RLIMIT_SIGPENDING' => array(
1522
            '5.6' => false,
1523
            '7.0' => true
1524
        ),
1525
        'POSIX_RLIMIT_STACK' => array(
1526
            '5.6' => false,
1527
            '7.0' => true
1528
        ),
1529
        'POSIX_RLIMIT_INFINITY' => array(
1530
            '5.6' => false,
1531
            '7.0' => true
1532
        ),
1533
        // Zlib:
1534
        // The first three are in the PHP 5.4 changelog, but the Extension constant page says 7.0.
1535
        'ZLIB_ENCODING_RAW' => array(
1536
            '5.6' => false,
1537
            '7.0' => true
1538
        ),
1539
        'ZLIB_ENCODING_DEFLATE' => array(
1540
            '5.6' => false,
1541
            '7.0' => true
1542
        ),
1543
        'ZLIB_ENCODING_GZIP' => array(
1544
            '5.6' => false,
1545
            '7.0' => true
1546
        ),
1547
        'ZLIB_FILTERED' => array(
1548
            '5.6' => false,
1549
            '7.0' => true
1550
        ),
1551
        'ZLIB_HUFFMAN_ONLY' => array(
1552
            '5.6' => false,
1553
            '7.0' => true
1554
        ),
1555
        'ZLIB_FIXED' => array(
1556
            '5.6' => false,
1557
            '7.0' => true
1558
        ),
1559
        'ZLIB_RLE' => array(
1560
            '5.6' => false,
1561
            '7.0' => true
1562
        ),
1563
        'ZLIB_DEFAULT_STRATEGY' => array(
1564
            '5.6' => false,
1565
            '7.0' => true
1566
        ),
1567
        'ZLIB_BLOCK' => array(
1568
            '5.6' => false,
1569
            '7.0' => true
1570
        ),
1571
        'ZLIB_FINISH' => array(
1572
            '5.6' => false,
1573
            '7.0' => true
1574
        ),
1575
        'ZLIB_FULL_FLUSH' => array(
1576
            '5.6' => false,
1577
            '7.0' => true
1578
        ),
1579
        'ZLIB_NO_FLUSH' => array(
1580
            '5.6' => false,
1581
            '7.0' => true
1582
        ),
1583
        'ZLIB_PARTIAL_FLUSH' => array(
1584
            '5.6' => false,
1585
            '7.0' => true
1586
        ),
1587
        'ZLIB_SYNC_FLUSH' => array(
1588
            '5.6' => false,
1589
            '7.0' => true
1590
        ),
1591
1592
        'CURL_HTTP_VERSION_2' => array(
1593
            '7.0.6' => false,
1594
            '7.0.7' => true
1595
        ),
1596
        'CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE' => array(
1597
            '7.0.6' => false,
1598
            '7.0.7' => true
1599
        ),
1600
        'CURL_HTTP_VERSION_2TLS' => array(
1601
            '7.0.6' => false,
1602
            '7.0.7' => true
1603
        ),
1604
        'CURL_REDIR_POST_301' => array(
1605
            '7.0.6' => false,
1606
            '7.0.7' => true
1607
        ),
1608
        'CURL_REDIR_POST_302' => array(
1609
            '7.0.6' => false,
1610
            '7.0.7' => true
1611
        ),
1612
        'CURL_REDIR_POST_303' => array(
1613
            '7.0.6' => false,
1614
            '7.0.7' => true
1615
        ),
1616
        'CURL_REDIR_POST_ALL' => array(
1617
            '7.0.6' => false,
1618
            '7.0.7' => true
1619
        ),
1620
        'CURL_VERSION_KERBEROS5' => array(
1621
            '7.0.6' => false,
1622
            '7.0.7' => true
1623
        ),
1624
        'CURL_VERSION_PSL' => array(
1625
            '7.0.6' => false,
1626
            '7.0.7' => true
1627
        ),
1628
        'CURL_VERSION_UNIX_SOCKETS' => array(
1629
            '7.0.6' => false,
1630
            '7.0.7' => true
1631
        ),
1632
        'CURLAUTH_NEGOTIATE' => array(
1633
            '7.0.6' => false,
1634
            '7.0.7' => true
1635
        ),
1636
        'CURLAUTH_NTLM_WB' => array(
1637
            '7.0.6' => false,
1638
            '7.0.7' => true
1639
        ),
1640
        'CURLFTP_CREATE_DIR' => array(
1641
            '7.0.6' => false,
1642
            '7.0.7' => true
1643
        ),
1644
        'CURLFTP_CREATE_DIR_NONE' => array(
1645
            '7.0.6' => false,
1646
            '7.0.7' => true
1647
        ),
1648
        'CURLFTP_CREATE_DIR_RETRY' => array(
1649
            '7.0.6' => false,
1650
            '7.0.7' => true
1651
        ),
1652
        'CURLHEADER_SEPARATE' => array(
1653
            '7.0.6' => false,
1654
            '7.0.7' => true
1655
        ),
1656
        'CURLHEADER_UNIFIED' => array(
1657
            '7.0.6' => false,
1658
            '7.0.7' => true
1659
        ),
1660
        'CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE' => array(
1661
            '7.0.6' => false,
1662
            '7.0.7' => true
1663
        ),
1664
        'CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE' => array(
1665
            '7.0.6' => false,
1666
            '7.0.7' => true
1667
        ),
1668
        'CURLMOPT_MAX_HOST_CONNECTIONS' => array(
1669
            '7.0.6' => false,
1670
            '7.0.7' => true
1671
        ),
1672
        'CURLMOPT_MAX_PIPELINE_LENGTH' => array(
1673
            '7.0.6' => false,
1674
            '7.0.7' => true
1675
        ),
1676
        'CURLMOPT_MAX_TOTAL_CONNECTIONS' => array(
1677
            '7.0.6' => false,
1678
            '7.0.7' => true
1679
        ),
1680
        'CURLOPT_CONNECT_TO' => array(
1681
            '7.0.6' => false,
1682
            '7.0.7' => true
1683
        ),
1684
        'CURLOPT_DEFAULT_PROTOCOL' => array(
1685
            '7.0.6' => false,
1686
            '7.0.7' => true
1687
        ),
1688
        'CURLOPT_DNS_INTERFACE' => array(
1689
            '7.0.6' => false,
1690
            '7.0.7' => true
1691
        ),
1692
        'CURLOPT_DNS_LOCAL_IP4' => array(
1693
            '7.0.6' => false,
1694
            '7.0.7' => true
1695
        ),
1696
        'CURLOPT_DNS_LOCAL_IP6' => array(
1697
            '7.0.6' => false,
1698
            '7.0.7' => true
1699
        ),
1700
        'CURLOPT_EXPECT_100_TIMEOUT_MS' => array(
1701
            '7.0.6' => false,
1702
            '7.0.7' => true
1703
        ),
1704
        'CURLOPT_HEADEROPT' => array(
1705
            '7.0.6' => false,
1706
            '7.0.7' => true
1707
        ),
1708
        'CURLOPT_LOGIN_OPTIONS' => array(
1709
            '7.0.6' => false,
1710
            '7.0.7' => true
1711
        ),
1712
        'CURLOPT_PATH_AS_IS' => array(
1713
            '7.0.6' => false,
1714
            '7.0.7' => true
1715
        ),
1716
        'CURLOPT_PINNEDPUBLICKEY' => array(
1717
            '7.0.6' => false,
1718
            '7.0.7' => true
1719
        ),
1720
        'CURLOPT_PIPEWAIT' => array(
1721
            '7.0.6' => false,
1722
            '7.0.7' => true
1723
        ),
1724
        'CURLOPT_PROXY_SERVICE_NAME' => array(
1725
            '7.0.6' => false,
1726
            '7.0.7' => true
1727
        ),
1728
        'CURLOPT_PROXYHEADER' => array(
1729
            '7.0.6' => false,
1730
            '7.0.7' => true
1731
        ),
1732
        'CURLOPT_SASL_IR' => array(
1733
            '7.0.6' => false,
1734
            '7.0.7' => true
1735
        ),
1736
        'CURLOPT_SERVICE_NAME' => array(
1737
            '7.0.6' => false,
1738
            '7.0.7' => true
1739
        ),
1740
        'CURLOPT_SSL_ENABLE_ALPN' => array(
1741
            '7.0.6' => false,
1742
            '7.0.7' => true
1743
        ),
1744
        'CURLOPT_SSL_ENABLE_NPN' => array(
1745
            '7.0.6' => false,
1746
            '7.0.7' => true
1747
        ),
1748
        'CURLOPT_SSL_FALSESTART' => array(
1749
            '7.0.6' => false,
1750
            '7.0.7' => true
1751
        ),
1752
        'CURLOPT_SSL_VERIFYSTATUS' => array(
1753
            '7.0.6' => false,
1754
            '7.0.7' => true
1755
        ),
1756
        'CURLOPT_STREAM_WEIGHT' => array(
1757
            '7.0.6' => false,
1758
            '7.0.7' => true
1759
        ),
1760
        'CURLOPT_TCP_FASTOPEN' => array(
1761
            '7.0.6' => false,
1762
            '7.0.7' => true
1763
        ),
1764
        'CURLOPT_TFTP_NO_OPTIONS' => array(
1765
            '7.0.6' => false,
1766
            '7.0.7' => true
1767
        ),
1768
        'CURLOPT_UNIX_SOCKET_PATH' => array(
1769
            '7.0.6' => false,
1770
            '7.0.7' => true
1771
        ),
1772
        'CURLOPT_XOAUTH2_BEARER' => array(
1773
            '7.0.6' => false,
1774
            '7.0.7' => true
1775
        ),
1776
        'CURLPROTO_SMB' => array(
1777
            '7.0.6' => false,
1778
            '7.0.7' => true
1779
        ),
1780
        'CURLPROTO_SMBS' => array(
1781
            '7.0.6' => false,
1782
            '7.0.7' => true
1783
        ),
1784
        'CURLPROXY_HTTP_1_0' => array(
1785
            '7.0.6' => false,
1786
            '7.0.7' => true
1787
        ),
1788
        'CURLSSH_AUTH_AGENT' => array(
1789
            '7.0.6' => false,
1790
            '7.0.7' => true
1791
        ),
1792
        'CURLSSLOPT_NO_REVOKE' => array(
1793
            '7.0.6' => false,
1794
            '7.0.7' => true
1795
        ),
1796
1797
        'PHP_FD_SETSIZE' => array(
1798
            '7.0' => false,
1799
            '7.1' => true
1800
        ),
1801
        // Curl:
1802
        'CURLMOPT_PUSHFUNCTION' => array(
1803
            '7.0' => false,
1804
            '7.1' => true
1805
        ),
1806
        'CURL_PUST_OK' => array(
1807
            '7.0' => false,
1808
            '7.1' => true
1809
        ),
1810
        'CURL_PUSH_DENY' => array(
1811
            '7.0' => false,
1812
            '7.1' => true
1813
        ),
1814
        // Filter:
1815
        'FILTER_FLAG_EMAIL_UNICODE' => array(
1816
            '7.0' => false,
1817
            '7.1' => true
1818
        ),
1819
        // GD:
1820
        'IMAGETYPE_WEBP' => array(
1821
            '7.0' => false,
1822
            '7.1' => true
1823
        ),
1824
        // Json:
1825
        'JSON_UNESCAPED_LINE_TERMINATORS' => array(
1826
            '7.0' => false,
1827
            '7.1' => true
1828
        ),
1829
        // LDAP:
1830
        'LDAP_OPT_X_SASL_NOCANON' => array(
1831
            '7.0' => false,
1832
            '7.1' => true
1833
        ),
1834
        'LDAP_OPT_X_SASL_USERNAME' => array(
1835
            '7.0' => false,
1836
            '7.1' => true
1837
        ),
1838
        'LDAP_OPT_X_TLS_CACERTDIR' => array(
1839
            '7.0' => false,
1840
            '7.1' => true
1841
        ),
1842
        'LDAP_OPT_X_TLS_CACERTFILE' => array(
1843
            '7.0' => false,
1844
            '7.1' => true
1845
        ),
1846
        'LDAP_OPT_X_TLS_CERTFILE' => array(
1847
            '7.0' => false,
1848
            '7.1' => true
1849
        ),
1850
        'LDAP_OPT_X_TLS_CIPHER_SUITE' => array(
1851
            '7.0' => false,
1852
            '7.1' => true
1853
        ),
1854
        'LDAP_OPT_X_TLS_KEYFILE' => array(
1855
            '7.0' => false,
1856
            '7.1' => true
1857
        ),
1858
        'LDAP_OPT_X_TLS_RANDOM_FILE' => array(
1859
            '7.0' => false,
1860
            '7.1' => true
1861
        ),
1862
        'LDAP_OPT_X_TLS_CRLCHECK' => array(
1863
            '7.0' => false,
1864
            '7.1' => true
1865
        ),
1866
        'LDAP_OPT_X_TLS_CRL_NONE' => array(
1867
            '7.0' => false,
1868
            '7.1' => true
1869
        ),
1870
        'LDAP_OPT_X_TLS_CRL_PEER' => array(
1871
            '7.0' => false,
1872
            '7.1' => true
1873
        ),
1874
        'LDAP_OPT_X_TLS_CRL_ALL' => array(
1875
            '7.0' => false,
1876
            '7.1' => true
1877
        ),
1878
        'LDAP_OPT_X_TLS_DHFILE' => array(
1879
            '7.0' => false,
1880
            '7.1' => true
1881
        ),
1882
        'LDAP_OPT_X_TLS_CRLFILE' => array(
1883
            '7.0' => false,
1884
            '7.1' => true
1885
        ),
1886
        'LDAP_OPT_X_TLS_PROTOCOL_MIN' => array(
1887
            '7.0' => false,
1888
            '7.1' => true
1889
        ),
1890
        'LDAP_OPT_X_TLS_PROTOCOL_SSL2' => array(
1891
            '7.0' => false,
1892
            '7.1' => true
1893
        ),
1894
        'LDAP_OPT_X_TLS_PROTOCOL_SSL3' => array(
1895
            '7.0' => false,
1896
            '7.1' => true
1897
        ),
1898
        'LDAP_OPT_X_TLS_PROTOCOL_TLS1_0' => array(
1899
            '7.0' => false,
1900
            '7.1' => true
1901
        ),
1902
        'LDAP_OPT_X_TLS_PROTOCOL_TLS1_1' => array(
1903
            '7.0' => false,
1904
            '7.1' => true
1905
        ),
1906
        'LDAP_OPT_X_TLS_PROTOCOL_TLS1_2' => array(
1907
            '7.0' => false,
1908
            '7.1' => true
1909
        ),
1910
        'LDAP_OPT_X_TLS_PACKAGE' => array(
1911
            '7.0' => false,
1912
            '7.1' => true
1913
        ),
1914
        'LDAP_OPT_X_KEEPALIVE_IDLE' => array(
1915
            '7.0' => false,
1916
            '7.1' => true
1917
        ),
1918
        'LDAP_OPT_X_KEEPALIVE_PROBES' => array(
1919
            '7.0' => false,
1920
            '7.1' => true
1921
        ),
1922
        'LDAP_OPT_X_KEEPALIVE_INTERVAL' => array(
1923
            '7.0' => false,
1924
            '7.1' => true
1925
        ),
1926
        // PostgreSQL:
1927
        'PGSQL_NOTICE_LAST' => array(
1928
            '7.0' => false,
1929
            '7.1' => true
1930
        ),
1931
        'PGSQL_NOTICE_ALL' => array(
1932
            '7.0' => false,
1933
            '7.1' => true
1934
        ),
1935
        'PGSQL_NOTICE_CLEAR' => array(
1936
            '7.0' => false,
1937
            '7.1' => true
1938
        ),
1939
        // SPL:
1940
        'MT_RAND_PHP' => array(
1941
            '7.0' => false,
1942
            '7.1' => true
1943
        ),
1944
1945
1946
        // Core:
1947
        'PHP_OS_FAMILY' => array(
1948
            '7.1' => false,
1949
            '7.2' => true
1950
        ),
1951
        'PHP_FLOAT_DIG' => array(
1952
            '7.1' => false,
1953
            '7.2' => true
1954
        ),
1955
        'PHP_FLOAT_EPSILON' => array(
1956
            '7.1' => false,
1957
            '7.2' => true
1958
        ),
1959
        'PHP_FLOAT_MIN' => array(
1960
            '7.1' => false,
1961
            '7.2' => true
1962
        ),
1963
        'PHP_FLOAT_MAX' => array(
1964
            '7.1' => false,
1965
            '7.2' => true
1966
        ),
1967
1968
        // Core/Password Hashing:
1969
        'PASSWORD_ARGON2I' => array(
1970
            '7.1' => false,
1971
            '7.2' => true
1972
        ),
1973
        'PASSWORD_ARGON2_DEFAULT_MEMORY_COST' => array(
1974
            '7.1' => false,
1975
            '7.2' => true
1976
        ),
1977
        'PASSWORD_ARGON2_DEFAULT_TIME_COST' => array(
1978
            '7.1' => false,
1979
            '7.2' => true
1980
        ),
1981
        'PASSWORD_ARGON2_DEFAULT_THREADS' => array(
1982
            '7.1' => false,
1983
            '7.2' => true
1984
        ),
1985
1986
        // Fileinfo:
1987
        'FILEINFO_EXTENSION' => array(
1988
            '7.1' => false,
1989
            '7.2' => true
1990
        ),
1991
1992
        // GD:
1993
        'IMG_EFFECT_MULTIPLY' => array(
1994
            '7.1' => false,
1995
            '7.2' => true
1996
        ),
1997
        'IMG_BMP' => array(
1998
            '7.1' => false,
1999
            '7.2' => true
2000
        ),
2001
2002
        // JSON:
2003
        'JSON_INVALID_UTF8_IGNORE' => array(
2004
            '7.1' => false,
2005
            '7.2' => true
2006
        ),
2007
        'JSON_INVALID_UTF8_SUBSTITUTE' => array(
2008
            '7.1' => false,
2009
            '7.2' => true
2010
        ),
2011
2012
        // LDAP:
2013
        'LDAP_EXOP_START_TLS' => array(
2014
            '7.1' => false,
2015
            '7.2' => true
2016
        ),
2017
        'LDAP_EXOP_MODIFY_PASSWD' => array(
2018
            '7.1' => false,
2019
            '7.2' => true
2020
        ),
2021
        'LDAP_EXOP_REFRESH' => array(
2022
            '7.1' => false,
2023
            '7.2' => true
2024
        ),
2025
        'LDAP_EXOP_WHO_AM_I' => array(
2026
            '7.1' => false,
2027
            '7.2' => true
2028
        ),
2029
        'LDAP_EXOP_TURN' => array(
2030
            '7.1' => false,
2031
            '7.2' => true
2032
        ),
2033
2034
        // PCRE:
2035
        'PREG_UNMATCHED_AS_NULL' => array(
2036
            '7.1' => false,
2037
            '7.2' => true
2038
        ),
2039
2040
    );
2041
2042
2043
    /**
2044
     * Returns an array of tokens this test wants to listen for.
2045
     *
2046
     * @return array
2047
     */
2048
    public function register()
2049
    {
2050
        return array(T_STRING);
2051
2052
    }//end register()
2053
2054
    /**
2055
     * Processes this test, when one of its tokens is encountered.
2056
     *
2057
     * @param \PHP_CodeSniffer_File $phpcsFile The file being scanned.
2058
     * @param int                   $stackPtr  The position of the current token in the
2059
     *                                         stack passed in $tokens.
2060
     *
2061
     * @return void
2062
     */
2063 View Code Duplication
    public function process(\PHP_CodeSniffer_File $phpcsFile, $stackPtr)
2064
    {
2065
        $tokens       = $phpcsFile->getTokens();
2066
        $constantName = $tokens[$stackPtr]['content'];
2067
2068
        if (isset($this->newConstants[$constantName]) === false) {
2069
            return;
2070
        }
2071
2072
        if ($this->isUseOfGlobalConstant($phpcsFile, $stackPtr) === false) {
2073
            return;
2074
        }
2075
2076
        $itemInfo = array(
2077
            'name' => $constantName,
2078
        );
2079
        $this->handleFeature($phpcsFile, $stackPtr, $itemInfo);
2080
2081
    }//end process()
2082
2083
2084
    /**
2085
     * Get the relevant sub-array for a specific item from a multi-dimensional array.
2086
     *
2087
     * @param array $itemInfo Base information about the item.
2088
     *
2089
     * @return array Version and other information about the item.
2090
     */
2091
    public function getItemArray(array $itemInfo)
2092
    {
2093
        return $this->newConstants[$itemInfo['name']];
2094
    }
2095
2096
2097
    /**
2098
     * Get the error message template for this sniff.
2099
     *
2100
     * @return string
2101
     */
2102
    protected function getErrorMsgTemplate()
2103
    {
2104
        return 'The constant "%s" is not present in PHP version %s or earlier';
2105
    }
2106
2107
2108
}//end class
2109