Completed
Push — code-coverage ( 264710...83c44c )
by Wim
02:45
created

NewFunctionsSniffTest::testNewFunction()   C

Complexity

Conditions 7
Paths 17

Size

Total Lines 23
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 23
rs 6.7272
cc 7
eloc 15
nc 17
nop 2
1
<?php
2
/**
3
 * New Functions Sniff test file
4
 *
5
 * @package PHPCompatibility
6
 */
7
8
9
/**
10
 * New Functions Sniff tests
11
 *
12
 * @uses BaseSniffTest
13
 * @package PHPCompatibility
14
 * @author Jansen Price <[email protected]>
15
 */
16
class NewFunctionsSniffTest extends BaseSniffTest
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
17
{
18
19
    const TEST_FILE = 'sniff-examples/new_functions.php';
20
21
    /**
22
     * Test functions that shouldn't be flagged by this sniff.
23
     *
24
     * These are either userland methods or namespaced functions.
25
     *
26
     * @requires PHP 5.3
27
     *
28
     * @group newFunctions
29
     *
30
     * @return void
31
     */
32 View Code Duplication
    public function testFunctionsThatShouldntBeFlagged()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
33
    {
34
        $file = $this->sniffFile(self::TEST_FILE, '5.3');
35
36
        $this->assertNoViolation($file, 4);
37
        $this->assertNoViolation($file, 5);
38
        $this->assertNoViolation($file, 6);
39
        $this->assertNoViolation($file, 7);
40
    }
41
42
43
    /**
44
     * testNewFunction
45
     *
46
     * @group newFunctions
47
     *
48
     * @dataProvider dataNewFunction
49
     *
50
     * @param string $functionName      Name of the function.
0 ignored issues
show
Bug introduced by
There is no parameter named $functionName. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
51
     * @param string $lastVersionBefore The PHP version just *before* the function was introduced.
52
     * @param array  $lines             The line numbers in the test file which apply to this function.
0 ignored issues
show
Bug introduced by
There is no parameter named $lines. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
53
     * @param string $okVersion         A PHP version in which the function was valid.
0 ignored issues
show
Bug introduced by
There is no parameter named $okVersion. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
54
     * @param string $testVersion       Optional. A PHP version in which to test for the error if different
0 ignored issues
show
Bug introduced by
There is no parameter named $testVersion. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
55
     *                                  from the $lastVersionBefore.
56
     *
57
     * @return void
58
     */
59
    public function testNewFunction($lastVersionBefore, $testFunctions)
60
    {
61
        $file = $this->sniffFile(self::TEST_FILE, $lastVersionBefore);
62
        foreach ($testFunctions as $testFunction) {
63
            if (count($testFunction) == 5) {
64
                list($functionName, , $lines, $okVersion, $testVersion) = $testFunction;
65
                $file = $this->sniffFile(self::TEST_FILE, $testVersion);
66
            } else {
67
                list($functionName, , $lines, $okVersion) = $testFunction;
68
            }
69
            foreach($lines as $line) {
70
                $this->assertError($file, $line, "The function {$functionName} is not present in PHP version {$lastVersionBefore} or earlier");
71
            }
72
73
            if (isset($lastOkVersion) === false || $lastOkVersion != $okVersion) {
0 ignored issues
show
Bug introduced by
The variable $lastOkVersion does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
74
                $okFile = $this->sniffFile(self::TEST_FILE, $okVersion);
75
                $lastOkVersion = $okVersion;
76
            }
77
            foreach( $lines as $line ) {
78
                $this->assertNoViolation($okFile, $line);
0 ignored issues
show
Bug introduced by
The variable $okFile does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
79
            }
80
        }
81
    }
82
83
    /**
84
     * Data provider.
85
     *
86
     * @see testNewFunction()
87
     *
88
     * @return array
89
     */
90
    public function dataNewFunction() {
91
        return array(
92
            array(
93
                '5.1',
94
                array(
95
                    array('array_fill_keys', '5.1', array(12, 13), '5.3'),
96
                    array('error_get_last', '5.1', array(14), '5.3'),
97
                    array('image_type_to_extension', '5.1', array(15), '5.2'),
98
                    array('memory_get_peak_usage', '5.1', array(16), '5.2'),
99
                    array('sys_get_temp_dir', '5.1', array(17), '5.2'),
100
                    array('timezone_abbreviations_list', '5.1', array(18), '5.2'),
101
                    array('timezone_identifiers_list', '5.1', array(19), '5.2'),
102
                    array('timezone_name_from_abbr', '5.1', array(20), '5.2'),
103
                    array('stream_socket_shutdown', '5.1', array(21), '5.2'),
104
                    array('imagegrabscreen', '5.1', array(22), '5.2'),
105
                    array('imagegrabwindow', '5.1', array(23), '5.2'),
106
                    array('libxml_disable_entity_loader', '5.1', array(24), '5.2'),
107
                    array('mb_stripos', '5.1', array(25), '5.2'),
108
                    array('mb_stristr', '5.1', array(26), '5.2'),
109
                    array('mb_strrchr', '5.1', array(27), '5.2'),
110
                    array('mb_strrichr', '5.1', array(28), '5.2'),
111
                    array('mb_strripos', '5.1', array(29), '5.2'),
112
                    array('ming_setSWFCompression', '5.1', array(30), '5.2'),
113
                    array('openssl_csr_get_public_key', '5.1', array(31), '5.2'),
114
                    array('openssl_csr_get_subject', '5.1', array(32), '5.2'),
115
                    array('openssl_pkey_get_details', '5.1', array(33), '5.2'),
116
                    array('spl_object_hash', '5.1', array(34), '5.2'),
117
                    array('iterator_apply', '5.1', array(35), '5.2'),
118
                    array('preg_last_error', '5.1', array(36), '5.2'),
119
                    array('pg_field_table', '5.1', array(37), '5.2'),
120
                    array('posix_initgroups', '5.1', array(38), '5.2'),
121
                    array('gmp_nextprime', '5.1', array(39), '5.2'),
122
                    array('xmlwriter_full_end_element', '5.1', array(40), '5.2'),
123
                    array('xmlwriter_write_raw', '5.1', array(41), '5.2'),
124
                    array('xmlwriter_start_dtd_entity', '5.1', array(42), '5.2'),
125
                    array('xmlwriter_end_dtd_entity', '5.1', array(43), '5.2'),
126
                    array('xmlwriter_write_dtd_entity', '5.1', array(44), '5.2'),
127
                    array('filter_has_var', '5.1', array(45), '5.2'),
128
                    array('filter_id', '5.1', array(46), '5.2'),
129
                    array('filter_input_array', '5.1', array(47), '5.2'),
130
                    array('filter_input', '5.1', array(48), '5.2'),
131
                    array('filter_list', '5.1', array(49), '5.2'),
132
                    array('filter_var_array', '5.1', array(50), '5.2'),
133
                    array('filter_var', '5.1', array(51), '5.2'),
134
                    array('json_decode', '5.1', array(52), '5.2'),
135
                    array('json_encode', '5.1', array(53), '5.2'),
136
                    array('zip_close', '5.1', array(54), '5.2'),
137
                    array('zip_entry_close', '5.1', array(55), '5.2'),
138
                    array('zip_entry_compressedsize', '5.1', array(56), '5.2'),
139
                    array('zip_entry_compressionmethod', '5.1', array(57), '5.2'),
140
                    array('zip_entry_filesize', '5.1', array(58), '5.2'),
141
                    array('zip_entry_name', '5.1', array(59), '5.2'),
142
                    array('zip_entry_open', '5.1', array(60), '5.2'),
143
                    array('zip_entry_read', '5.1', array(61), '5.2'),
144
                    array('zip_open', '5.1', array(62), '5.2'),
145
                    array('zip_read', '5.1', array(63), '5.2'),
146
                )
147
            ),
148
            array(
149
                '5.2',
150
                array(
151
                    array('array_replace', '5.2', array(65), '5.3'),
152
                    array('array_replace_recursive', '5.2', array(66), '5.3'),
153
                    array('class_alias', '5.2', array(67), '5.3'),
154
                    array('forward_static_call', '5.2', array(68), '5.3'),
155
                    array('forward_static_call_array', '5.2', array(69), '5.3'),
156
                    array('gc_collect_cycles', '5.2', array(70), '5.3'),
157
                    array('gc_disable', '5.2', array(71), '5.3'),
158
                    array('gc_enable', '5.2', array(72), '5.3'),
159
                    array('gc_enabled', '5.2', array(73), '5.3'),
160
                    array('get_called_class', '5.2', array(74), '5.3'),
161
                    array('gethostname', '5.2', array(75), '5.3'),
162
                    array('header_remove', '5.2', array(76), '5.3'),
163
                    array('lcfirst', '5.2', array(77), '5.3'),
164
                    array('parse_ini_string', '5.2', array(78), '5.3'),
165
                    array('quoted_printable_encode', '5.2', array(79), '5.3'),
166
                    array('str_getcsv', '5.2', array(80), '5.3'),
167
                    array('stream_context_set_default', '5.2', array(81), '5.3'),
168
                    array('stream_supports_lock', '5.2', array(82), '5.3'),
169
                    array('stream_context_get_params', '5.2', array(83), '5.3'),
170
                    array('date_add', '5.2', array(84), '5.3'),
171
                    array('date_create_from_format', '5.2', array(85), '5.3'),
172
                    array('date_diff', '5.2', array(86), '5.3'),
173
                    array('date_get_last_errors', '5.2', array(87), '5.3'),
174
                    array('date_parse_from_format', '5.2', array(88), '5.3'),
175
                    array('date_sub', '5.2', array(89), '5.3'),
176
                    array('timezone_version_get', '5.2', array(90), '5.3'),
177
                    array('gmp_testbit', '5.2', array(91), '5.3'),
178
                    array('hash_copy', '5.2', array(92), '5.3'),
179
                    array('imap_gc', '5.2', array(93), '5.3'),
180
                    array('imap_utf8_to_mutf7', '5.2', array(94), '5.3'),
181
                    array('imap_mutf7_to_utf8', '5.2', array(95), '5.3'),
182
                    array('json_last_error', '5.2', array(96), '5.3'),
183
                    array('mysqli_fetch_all', '5.2', array(97), '5.3'),
184
                    array('mysqli_get_connection_status', '5.2', array(98), '5.3'),
185
                    array('mysqli_poll', '5.2', array(99), '5.3'),
186
                    array('mysqli_read_async_query', '5.2', array(100), '5.3'),
187
                    array('openssl_random_pseudo_bytes', '5.2', array(101), '5.3'),
188
                    array('pcntl_signal_dispatch', '5.2', array(102), '5.3'),
189
                    array('pcntl_sigprocmask', '5.2', array(103), '5.3'),
190
                    array('pcntl_sigtimedwait', '5.2', array(104), '5.3'),
191
                    array('pcntl_sigwaitinfo', '5.2', array(105), '5.3'),
192
                    array('preg_filter', '5.2', array(106), '5.3'),
193
                    array('msg_queue_exists', '5.2', array(107), '5.3'),
194
                    array('shm_has_vars', '5.2', array(108), '5.3'),
195
                    array('acosh', '5.2', array(109), '5.3'),
196
                    array('asinh', '5.2', array(110), '5.3'),
197
                    array('atanh', '5.2', array(111), '5.3'),
198
                    array('expm1', '5.2', array(112), '5.3'),
199
                    array('log1p', '5.2', array(113), '5.3'),
200
                    array('enchant_broker_describe', '5.2', array(114), '5.3'),
201
                    array('enchant_broker_dict_exists', '5.2', array(115), '5.3'),
202
                    array('enchant_broker_free_dict', '5.2', array(116), '5.3'),
203
                    array('enchant_broker_free', '5.2', array(117), '5.3'),
204
                    array('enchant_broker_get_error', '5.2', array(118), '5.3'),
205
                    array('enchant_broker_init', '5.2', array(119), '5.3'),
206
                    array('enchant_broker_list_dicts', '5.2', array(120), '5.3'),
207
                    array('enchant_broker_request_dict', '5.2', array(121), '5.3'),
208
                    array('enchant_broker_request_pwl_dict', '5.2', array(122), '5.3'),
209
                    array('enchant_broker_set_ordering', '5.2', array(123), '5.3'),
210
                    array('enchant_dict_add_to_personal', '5.2', array(124), '5.3'),
211
                    array('enchant_dict_add_to_session', '5.2', array(125), '5.3'),
212
                    array('enchant_dict_check', '5.2', array(126), '5.3'),
213
                    array('enchant_dict_describe', '5.2', array(127), '5.3'),
214
                    array('enchant_dict_get_error', '5.2', array(128), '5.3'),
215
                    array('enchant_dict_is_in_session', '5.2', array(129), '5.3'),
216
                    array('enchant_dict_quick_check', '5.2', array(130), '5.3'),
217
                    array('enchant_dict_store_replacement', '5.2', array(131), '5.3'),
218
                    array('enchant_dict_suggest', '5.2', array(132), '5.3'),
219
                    array('finfo_buffer', '5.2', array(133), '5.3'),
220
                    array('finfo_close', '5.2', array(134), '5.3'),
221
                    array('finfo_file', '5.2', array(135), '5.3'),
222
                    array('finfo_open', '5.2', array(136), '5.3'),
223
                    array('finfo_set_flags', '5.2', array(137), '5.3'),
224
                    array('intl_error_name', '5.2', array(138), '5.3'),
225
                    array('intl_get_error_code', '5.2', array(139), '5.3'),
226
                    array('intl_get_error_message', '5.2', array(140), '5.3'),
227
                    array('intl_is_failure', '5.2', array(141), '5.3'),
228
                    array('mysqli_get_cache_stats', '5.2', array(142), '5.3'),
229
                )
230
            ),
231
            array(
232
                '5.3',
233
                array(
234
                    array('hex2bin', '5.3', array(144), '5.4'),
235
                    array('http_response_code', '5.3', array(145), '5.4'),
236
                    array('get_declared_traits', '5.3', array(146), '5.4'),
237
                    array('getimagesizefromstring', '5.3', array(147), '5.4'),
238
                    array('stream_set_chunk_size', '5.3', array(148), '5.4'),
239
                    array('socket_import_stream', '5.3', array(149), '5.4'),
240
                    array('trait_exists', '5.3', array(150), '5.4'),
241
                    array('header_register_callback', '5.3', array(151), '5.4'),
242
                    array('class_uses', '5.3', array(152), '5.4'),
243
                    array('session_status', '5.3', array(153), '5.4'),
244
                    array('session_register_shutdown', '5.3', array(154), '5.4'),
245
                    array('mysqli_error_list', '5.3', array(155), '5.4'),
246
                    array('mysqli_stmt_error_list', '5.3', array(156), '5.4'),
247
                    array('libxml_set_external_entity_loader', '5.3', array(157), '5.4'),
248
                    array('ldap_control_paged_result', '5.3', array(158), '5.4'),
249
                    array('ldap_control_paged_result_response', '5.3', array(159), '5.4'),
250
                    array('transliteral_create', '5.3', array(160), '5.4'),
251
                    array('transliteral_create_from_rules', '5.3', array(161), '5.4'),
252
                    array('transliteral_create_inverse', '5.3', array(162), '5.4'),
253
                    array('transliteral_get_error_code', '5.3', array(163), '5.4'),
254
                    array('transliteral_get_error_message', '5.3', array(164), '5.4'),
255
                    array('transliteral_list_ids', '5.3', array(165), '5.4'),
256
                    array('transliteral_transliterate', '5.3', array(166), '5.4'),
257
                    array('zlib_decode', '5.3', array(167), '5.4'),
258
                    array('zlib_encode', '5.3', array(168), '5.4'),
259
                )
260
            ),
261
            array(
262
                '5.4',
263
                array(
264
                    array('array_column', '5.4', array(170), '5.5'),
265
                    array('boolval', '5.4', array(171), '5.5'),
266
                    array('json_last_error_msg', '5.4', array(172), '5.5'),
267
                    array('password_get_info', '5.4', array(173), '5.5'),
268
                    array('password_hash', '5.4', array(174), '5.5'),
269
                    array('password_needs_rehash', '5.4', array(175), '5.5'),
270
                    array('password_verify', '5.4', array(176), '5.5'),
271
                    array('hash_pbkdf2', '5.4', array(177), '5.5'),
272
                    array('openssl_pbkdf2', '5.4', array(178), '5.5'),
273
                    array('curl_escape', '5.4', array(179), '5.5'),
274
                    array('curl_file_create', '5.4', array(180), '5.5'),
275
                    array('curl_multi_setopt', '5.4', array(181), '5.5'),
276
                    array('curl_multi_strerror', '5.4', array(182), '5.5'),
277
                    array('curl_pause', '5.4', array(183), '5.5'),
278
                    array('curl_reset', '5.4', array(184), '5.5'),
279
                    array('curl_share_close', '5.4', array(185), '5.5'),
280
                    array('curl_share_init', '5.4', array(186), '5.5'),
281
                    array('curl_share_setopt', '5.4', array(187), '5.5'),
282
                    array('curl_strerror', '5.4', array(188), '5.5'),
283
                    array('curl_unescape', '5.4', array(189), '5.5'),
284
                    array('imageaffinematrixconcat', '5.4', array(190), '5.5'),
285
                    array('imageaffinematrixget', '5.4', array(191), '5.5'),
286
                    array('imagecrop', '5.4', array(192), '5.5'),
287
                    array('imagecropauto', '5.4', array(193), '5.5'),
288
                    array('imageflip', '5.4', array(194), '5.5'),
289
                    array('imagepalettetotruecolor', '5.4', array(195), '5.5'),
290
                    array('imagescale', '5.4', array(196), '5.5'),
291
                    array('mysqli_begin_transaction', '5.4', array(197), '5.5'),
292
                    array('mysqli_release_savepoint', '5.4', array(198), '5.5'),
293
                    array('mysqli_savepoint', '5.4', array(199), '5.5'),
294
                    array('pg_escape_literal', '5.4', array(200), '5.5'),
295
                    array('pg_escape_identifier', '5.4', array(201), '5.5'),
296
                    array('socket_sendmsg', '5.4', array(202), '5.5'),
297
                    array('socket_recvmsg', '5.4', array(203), '5.5'),
298
                    array('socket_cmsg_space', '5.4', array(204), '5.5'),
299
                    array('cli_get_process_title', '5.4', array(205), '5.5'),
300
                    array('cli_set_process_title', '5.4', array(206), '5.5'),
301
                    array('datefmt_format_object', '5.4', array(207), '5.5'),
302
                    array('datefmt_get_calendar_object', '5.4', array(208), '5.5'),
303
                    array('datefmt_get_timezone', '5.4', array(209), '5.5'),
304
                    array('datefmt_set_timezone', '5.4', array(210), '5.5'),
305
                    array('datefmt_get_calendar_object', '5.4', array(211), '5.5'),
306
                    array('intlcal_create_instance', '5.4', array(212), '5.5'),
307
                    array('intlcal_get_keyword_values_for_locale', '5.4', array(213), '5.5'),
308
                    array('intlcal_get_now', '5.4', array(214), '5.5'),
309
                    array('intlcal_get_available_locales', '5.4', array(215), '5.5'),
310
                    array('intlcal_get', '5.4', array(216), '5.5'),
311
                    array('intlcal_get_time', '5.4', array(217), '5.5'),
312
                    array('intlcal_set_time', '5.4', array(218), '5.5'),
313
                    array('intlcal_add', '5.4', array(219), '5.5'),
314
                    array('intlcal_set_time_zone', '5.4', array(220), '5.5'),
315
                    array('intlcal_after', '5.4', array(221), '5.5'),
316
                    array('intlcal_before', '5.4', array(222), '5.5'),
317
                    array('intlcal_set', '5.4', array(223), '5.5'),
318
                    array('intlcal_roll', '5.4', array(224), '5.5'),
319
                    array('intlcal_clear', '5.4', array(225), '5.5'),
320
                    array('intlcal_field_difference', '5.4', array(226), '5.5'),
321
                    array('intlcal_get_actual_maximum', '5.4', array(227), '5.5'),
322
                    array('intlcal_get_actual_minumum', '5.4', array(228), '5.5'),
323
                    array('intlcal_get_day_of_week_type', '5.4', array(229), '5.5'),
324
                    array('intlcal_get_first_day_of_week', '5.4', array(230), '5.5'),
325
                    array('intlcal_get_greatest_minimum', '5.4', array(231), '5.5'),
326
                    array('intlcal_get_least_maximum', '5.4', array(232), '5.5'),
327
                    array('intlcal_get_locale', '5.4', array(233), '5.5'),
328
                    array('intlcal_get_maximum', '5.4', array(234), '5.5'),
329
                    array('intlcal_get_minimal_days_in_first_week', '5.4', array(235), '5.5'),
330
                    array('intlcal_get_minimum', '5.4', array(236), '5.5'),
331
                    array('intlcal_get_time_zone', '5.4', array(237), '5.5'),
332
                    array('intlcal_get_type', '5.4', array(238), '5.5'),
333
                    array('intlcal_get_weekend_transition', '5.4', array(239), '5.5'),
334
                    array('intlcal_in_daylight_time', '5.4', array(240), '5.5'),
335
                    array('intlcal_is_equivalent_to', '5.4', array(241), '5.5'),
336
                    array('intlcal_is_lenient', '5.4', array(242), '5.5'),
337
                    array('intlcal_equals', '5.4', array(243), '5.5'),
338
                    array('intlcal_get_repeated_wall_time_option', '5.4', array(244), '5.5'),
339
                    array('intlcal_get_skipped_wall_time_option', '5.4', array(245), '5.5'),
340
                    array('intlcal_set_repeated_wall_time_option', '5.4', array(246), '5.5'),
341
                    array('intlcal_set_skipped_wall_time_option', '5.4', array(247), '5.5'),
342
                    array('intlcal_from_date_time', '5.4', array(248), '5.5'),
343
                    array('intlcal_to_date_time', '5.4', array(249), '5.5'),
344
                    array('intlcal_get_error_code', '5.4', array(250), '5.5'),
345
                    array('intlcal_get_error_message', '5.4', array(251), '5.5'),
346
                    array('intlgregcal_create_instance', '5.4', array(252), '5.5'),
347
                    array('intlgregcal_set_gregorian_change', '5.4', array(253), '5.5'),
348
                    array('intlgregcal_get_gregorian_change', '5.4', array(254), '5.5'),
349
                    array('intlgregcal_is_leap_year', '5.4', array(255), '5.5'),
350
                    array('intlz_create_time_zone', '5.4', array(256), '5.5'),
351
                    array('intlz_create_default', '5.4', array(257), '5.5'),
352
                    array('intlz_get_id', '5.4', array(258), '5.5'),
353
                    array('intlz_get_gmt', '5.4', array(259), '5.5'),
354
                    array('intlz_get_unknown', '5.4', array(260), '5.5'),
355
                    array('intlz_create_enumeration', '5.4', array(261), '5.5'),
356
                    array('intlz_count_equivalent_ids', '5.4', array(262), '5.5'),
357
                    array('intlz_create_time_zone_id_enumeration', '5.4', array(263), '5.5'),
358
                    array('intlz_get_canonical_id', '5.4', array(264), '5.5'),
359
                    array('intlz_get_region', '5.4', array(265), '5.5'),
360
                    array('intlz_get_tz_data_version', '5.4', array(266), '5.5'),
361
                    array('intlz_get_equivalent_id', '5.4', array(267), '5.5'),
362
                    array('intlz_use_daylight_time', '5.4', array(268), '5.5'),
363
                    array('intlz_get_offset', '5.4', array(269), '5.5'),
364
                    array('intlz_get_raw_offset', '5.4', array(270), '5.5'),
365
                    array('intlz_has_same_rules', '5.4', array(271), '5.5'),
366
                    array('intlz_get_display_name', '5.4', array(272), '5.5'),
367
                    array('intlz_get_dst_savings', '5.4', array(273), '5.5'),
368
                    array('intlz_from_date_time_zone', '5.4', array(274), '5.5'),
369
                    array('intlz_to_date_time_zone', '5.4', array(275), '5.5'),
370
                    array('intlz_get_error_code', '5.4', array(276), '5.5'),
371
                    array('intlz_get_error_message', '5.4', array(277), '5.5'),
372
                ),
373
            ),
374
            array(
375
                '5.5',
376
                array(
377
                    array('gmp_root', '5.5', array(279), '5.6'),
378
                    array('gmp_rootrem', '5.5', array(280), '5.6'),
379
                    array('hash_equals', '5.5', array(281), '5.6'),
380
                    array('ldap_escape', '5.5', array(282), '5.6'),
381
                    array('ldap_modify_batch', '5.4.25', array(283), '5.6', '5.4'),
382
                    array('mysqli_get_links_stats', '5.5', array(284), '5.6'),
383
                    array('openssl_get_cert_locations', '5.5', array(285), '5.6'),
384
                    array('openssl_x509_fingerprint', '5.5', array(286), '5.6'),
385
                    array('openssl_spki_new', '5.5', array(287), '5.6'),
386
                    array('openssl_spki_verify', '5.5', array(288), '5.6'),
387
                    array('openssl_spki_export_challenge', '5.5', array(289), '5.6'),
388
                    array('openssl_spki_export', '5.5', array(290), '5.6'),
389
                    array('pg_connect_poll', '5.5', array(291), '5.6'),
390
                    array('pg_consume_input', '5.5', array(292), '5.6'),
391
                    array('pg_flush', '5.5', array(293), '5.6'),
392
                    array('pg_socket', '5.5', array(294), '5.6'),
393
                    array('session_abort', '5.5', array(295), '5.6'),
394
                    array('session_reset', '5.5', array(296), '5.6'),
395
                )
396
            ),
397
            array(
398
                '5.6',
399
                array(
400
                    array('random_bytes', '5.6', array(298), '7.0'),
401
                    array('random_int', '5.6', array(299), '7.0'),
402
                    array('error_clear_last', '5.6', array(300), '7.0'),
403
                    array('gmp_random_seed', '5.6', array(301), '7.0'),
404
                    array('intdiv', '5.6', array(302), '7.0'),
405
                    array('preg_replace_callback_array', '5.6', array(303), '7.0'),
406
                    array('gc_mem_caches', '5.6', array(304), '7.0'),
407
                    array('get_resources', '5.6', array(305), '7.0'),
408
                    array('posix_setrlimit', '5.6', array(306), '7.0'),
409
                    array('inflate_add', '5.6', array(307), '7.0'),
410
                    array('deflate_add', '5.6', array(308), '7.0'),
411
                    array('inflate_init', '5.6', array(309), '7.0'),
412
                    array('deflate_init', '5.6', array(310), '7.0'),
413
                )
414
            )
415
        );
416
    }
417
418
}
419