1105 lines
32 KiB
PHP
1105 lines
32 KiB
PHP
<?php
|
|
/**
|
|
* PHPCompatibility, an external standard for PHP_CodeSniffer.
|
|
*
|
|
* @package PHPCompatibility
|
|
* @copyright 2012-2019 PHPCompatibility Contributors
|
|
* @license https://opensource.org/licenses/LGPL-3.0 LGPL3
|
|
* @link https://github.com/PHPCompatibility/PHPCompatibility
|
|
*/
|
|
|
|
namespace PHPCompatibility\Sniffs\FunctionUse;
|
|
|
|
use PHPCompatibility\AbstractRemovedFeatureSniff;
|
|
use PHP_CodeSniffer_File as File;
|
|
|
|
/**
|
|
* Detect calls to deprecated/removed native PHP functions.
|
|
*
|
|
* Suggests alternative if available.
|
|
*
|
|
* PHP version All
|
|
*
|
|
* @since 5.5
|
|
* @since 5.6 Now extends the base `Sniff` class instead of the upstream
|
|
* `Generic.PHP.ForbiddenFunctions` sniff.
|
|
* @since 7.1.0 Now extends the `AbstractRemovedFeatureSniff` instead of the base `Sniff` class.
|
|
* @since 9.0.0 Renamed from `DeprecatedFunctionsSniff` to `RemovedFunctionsSniff`.
|
|
*/
|
|
class RemovedFunctionsSniff extends AbstractRemovedFeatureSniff
|
|
{
|
|
/**
|
|
* A list of deprecated and removed functions with their alternatives.
|
|
*
|
|
* The array lists : version number with false (deprecated) or true (removed) and an alternative function.
|
|
* If no alternative exists, it is NULL, i.e, the function should just not be used.
|
|
*
|
|
* @since 5.5
|
|
* @since 5.6 Visibility changed from `protected` to `public`.
|
|
* @since 7.0.2 Visibility changed back from `public` to `protected`.
|
|
* The earlier change was made to be in line with the upstream sniff,
|
|
* but that sniff is no longer being extended.
|
|
* @since 7.0.8 Property renamed from `$forbiddenFunctions` to `$removedFunctions`.
|
|
*
|
|
* @var array(string => array(string => bool|string|null))
|
|
*/
|
|
protected $removedFunctions = array(
|
|
'php_check_syntax' => array(
|
|
'5.0.5' => true,
|
|
'alternative' => null,
|
|
),
|
|
|
|
'pfpro_cleanup' => array(
|
|
'5.1' => true,
|
|
'alternative' => null,
|
|
),
|
|
'pfpro_init' => array(
|
|
'5.1' => true,
|
|
'alternative' => null,
|
|
),
|
|
'pfpro_process_raw' => array(
|
|
'5.1' => true,
|
|
'alternative' => null,
|
|
),
|
|
'pfpro_process' => array(
|
|
'5.1' => true,
|
|
'alternative' => null,
|
|
),
|
|
'pfpro_version' => array(
|
|
'5.1' => true,
|
|
'alternative' => null,
|
|
),
|
|
|
|
'call_user_method' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'call_user_func()',
|
|
),
|
|
'call_user_method_array' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'call_user_func_array()',
|
|
),
|
|
'define_syslog_variables' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'dl' => array(
|
|
'5.3' => false,
|
|
'alternative' => null,
|
|
),
|
|
'ereg' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'preg_match()',
|
|
),
|
|
'ereg_replace' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'preg_replace()',
|
|
),
|
|
'eregi' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'preg_match()',
|
|
),
|
|
'eregi_replace' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'preg_replace()',
|
|
),
|
|
'imagepsbbox' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'imagepsencodefont' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'imagepsextendfont' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'imagepsfreefont' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'imagepsloadfont' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'imagepsslantfont' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'imagepstext' => array(
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'import_request_variables' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ldap_sort' => array(
|
|
'7.0' => false,
|
|
'alternative' => null,
|
|
),
|
|
'mcrypt_generic_end' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'mcrypt_generic_deinit()',
|
|
),
|
|
'mysql_db_query' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'mysqli::select_db() and mysqli::query()',
|
|
),
|
|
'mysql_escape_string' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'mysqli::real_escape_string()',
|
|
),
|
|
'mysql_list_dbs' => array(
|
|
'5.4' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'mysqli_bind_param' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli_stmt::bind_param()',
|
|
),
|
|
'mysqli_bind_result' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli_stmt::bind_result()',
|
|
),
|
|
'mysqli_client_encoding' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli::character_set_name()',
|
|
),
|
|
'mysqli_fetch' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli_stmt::fetch()',
|
|
),
|
|
'mysqli_param_count' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli_stmt_param_count()',
|
|
),
|
|
'mysqli_get_metadata' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli_stmt::result_metadata()',
|
|
),
|
|
'mysqli_send_long_data' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => 'mysqli_stmt::send_long_data()',
|
|
),
|
|
'magic_quotes_runtime' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'session_register' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => '$_SESSION',
|
|
),
|
|
'session_unregister' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => '$_SESSION',
|
|
),
|
|
'session_is_registered' => array(
|
|
'5.3' => false,
|
|
'5.4' => true,
|
|
'alternative' => '$_SESSION',
|
|
),
|
|
'set_magic_quotes_runtime' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'set_socket_blocking' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'stream_set_blocking()',
|
|
),
|
|
'split' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'preg_split()',
|
|
),
|
|
'spliti' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'preg_split()',
|
|
),
|
|
'sql_regcase' => array(
|
|
'5.3' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'php_logo_guid' => array(
|
|
'5.5' => true,
|
|
'alternative' => null,
|
|
),
|
|
'php_egg_logo_guid' => array(
|
|
'5.5' => true,
|
|
'alternative' => null,
|
|
),
|
|
'php_real_logo_guid' => array(
|
|
'5.5' => true,
|
|
'alternative' => null,
|
|
),
|
|
'zend_logo_guid' => array(
|
|
'5.5' => true,
|
|
'alternative' => null,
|
|
),
|
|
'datefmt_set_timezone_id' => array(
|
|
'5.5' => false,
|
|
'7.0' => true,
|
|
'alternative' => 'IntlDateFormatter::setTimeZone()',
|
|
),
|
|
'mcrypt_ecb' => array(
|
|
'5.5' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'mcrypt_cbc' => array(
|
|
'5.5' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'mcrypt_cfb' => array(
|
|
'5.5' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'mcrypt_ofb' => array(
|
|
'5.5' => false,
|
|
'7.0' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ocibindbyname' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_bind_by_name()',
|
|
),
|
|
'ocicancel' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_cancel()',
|
|
),
|
|
'ocicloselob' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::close()',
|
|
),
|
|
'ocicollappend' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::append()',
|
|
),
|
|
'ocicollassign' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::assign()',
|
|
),
|
|
'ocicollassignelem' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::assignElem()',
|
|
),
|
|
'ocicollgetelem' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::getElem()',
|
|
),
|
|
'ocicollmax' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::max()',
|
|
),
|
|
'ocicollsize' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::size()',
|
|
),
|
|
'ocicolltrim' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::trim()',
|
|
),
|
|
'ocicolumnisnull' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_is_null()',
|
|
),
|
|
'ocicolumnname' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_name()',
|
|
),
|
|
'ocicolumnprecision' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_precision()',
|
|
),
|
|
'ocicolumnscale' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_scale()',
|
|
),
|
|
'ocicolumnsize' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_size()',
|
|
),
|
|
'ocicolumntype' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_type()',
|
|
),
|
|
'ocicolumntyperaw' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_field_type_raw()',
|
|
),
|
|
'ocicommit' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_commit()',
|
|
),
|
|
'ocidefinebyname' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_define_by_name()',
|
|
),
|
|
'ocierror' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_error()',
|
|
),
|
|
'ociexecute' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_execute()',
|
|
),
|
|
'ocifetch' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_fetch()',
|
|
),
|
|
'ocifetchinto' => array(
|
|
'5.4' => false,
|
|
'alternative' => null,
|
|
),
|
|
'ocifetchstatement' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_fetch_all()',
|
|
),
|
|
'ocifreecollection' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Collection::free()',
|
|
),
|
|
'ocifreecursor' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_free_statement()',
|
|
),
|
|
'ocifreedesc' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::free()',
|
|
),
|
|
'ocifreestatement' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_free_statement()',
|
|
),
|
|
'ociinternaldebug' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_internal_debug()',
|
|
),
|
|
'ociloadlob' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::load()',
|
|
),
|
|
'ocilogoff' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_close()',
|
|
),
|
|
'ocilogon' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_connect()',
|
|
),
|
|
'ocinewcollection' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_new_collection()',
|
|
),
|
|
'ocinewcursor' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_new_cursor()',
|
|
),
|
|
'ocinewdescriptor' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_new_descriptor()',
|
|
),
|
|
'ocinlogon' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_new_connect()',
|
|
),
|
|
'ocinumcols' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_num_fields()',
|
|
),
|
|
'ociparse' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_parse()',
|
|
),
|
|
'ociplogon' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_pconnect()',
|
|
),
|
|
'ociresult' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_result()',
|
|
),
|
|
'ocirollback' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_rollback()',
|
|
),
|
|
'ocirowcount' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_num_rows()',
|
|
),
|
|
'ocisavelob' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::save()',
|
|
),
|
|
'ocisavelobfile' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::import()',
|
|
),
|
|
'ociserverversion' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_server_version()',
|
|
),
|
|
'ocisetprefetch' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_set_prefetch()',
|
|
),
|
|
'ocistatementtype' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'oci_statement_type()',
|
|
),
|
|
'ociwritelobtofile' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::export()',
|
|
),
|
|
'ociwritetemporarylob' => array(
|
|
'5.4' => false,
|
|
'alternative' => 'OCI-Lob::writeTemporary()',
|
|
),
|
|
'mysqli_get_cache_stats' => array(
|
|
'5.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
|
|
'mcrypt_create_iv' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'random_bytes() or OpenSSL',
|
|
),
|
|
'mcrypt_decrypt' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_get_algorithms_name' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_get_block_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_get_iv_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_get_key_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_get_modes_name' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_get_supported_key_sizes' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_is_block_algorithm_mode' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_is_block_algorithm' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_is_block_mode' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_enc_self_test' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_encrypt' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_generic_deinit' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_generic_init' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_generic' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_get_block_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_get_cipher_name' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_get_iv_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_get_key_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_list_algorithms' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_list_modes' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_close' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_get_algo_block_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_get_algo_key_size' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_get_supported_key_sizes' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_is_block_algorithm_mode' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_is_block_algorithm' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_is_block_mode' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_open' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mcrypt_module_self_test' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'mdecrypt_generic' => array(
|
|
'7.1' => false,
|
|
'7.2' => true,
|
|
'alternative' => 'OpenSSL',
|
|
),
|
|
'jpeg2wbmp' => array(
|
|
'7.2' => false,
|
|
'alternative' => 'imagecreatefromjpeg() and imagewbmp()',
|
|
),
|
|
'png2wbmp' => array(
|
|
'7.2' => false,
|
|
'alternative' => 'imagecreatefrompng() or imagewbmp()',
|
|
),
|
|
'create_function' => array(
|
|
'7.2' => false,
|
|
'alternative' => 'an anonymous function',
|
|
),
|
|
'each' => array(
|
|
'7.2' => false,
|
|
'alternative' => 'a foreach loop',
|
|
),
|
|
'gmp_random' => array(
|
|
'7.2' => false,
|
|
'alternative' => 'gmp_random_bits() or gmp_random_range()',
|
|
),
|
|
'read_exif_data' => array(
|
|
'7.2' => false,
|
|
'alternative' => 'exif_read_data()',
|
|
),
|
|
|
|
'image2wbmp' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'imagewbmp()',
|
|
),
|
|
'mbregex_encoding' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_regex_encoding()',
|
|
),
|
|
'mbereg' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg()',
|
|
),
|
|
'mberegi' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_eregi()',
|
|
),
|
|
'mbereg_replace' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_replace()',
|
|
),
|
|
'mberegi_replace' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_eregi_replace()',
|
|
),
|
|
'mbsplit' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_split()',
|
|
),
|
|
'mbereg_match' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_match()',
|
|
),
|
|
'mbereg_search' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search()',
|
|
),
|
|
'mbereg_search_pos' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search_pos()',
|
|
),
|
|
'mbereg_search_regs' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search_regs()',
|
|
),
|
|
'mbereg_search_init' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search_init()',
|
|
),
|
|
'mbereg_search_getregs' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search_getregs()',
|
|
),
|
|
'mbereg_search_getpos' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search_getpos()',
|
|
),
|
|
'mbereg_search_setpos' => array(
|
|
'7.3' => false,
|
|
'alternative' => 'mb_ereg_search_setpos()',
|
|
),
|
|
'fgetss' => array(
|
|
'7.3' => false,
|
|
'alternative' => null,
|
|
),
|
|
'gzgetss' => array(
|
|
'7.3' => false,
|
|
'alternative' => null,
|
|
),
|
|
|
|
'convert_cyr_string' => array(
|
|
'7.4' => false,
|
|
'alternative' => 'mb_convert_encoding(), iconv() or UConverter',
|
|
),
|
|
'ezmlm_hash' => array(
|
|
'7.4' => false,
|
|
'alternative' => null,
|
|
),
|
|
'get_magic_quotes_gpc' => array(
|
|
'7.4' => false,
|
|
'alternative' => null,
|
|
),
|
|
'get_magic_quotes_runtime' => array(
|
|
'7.4' => false,
|
|
'alternative' => null,
|
|
),
|
|
'hebrevc' => array(
|
|
'7.4' => false,
|
|
'alternative' => null,
|
|
),
|
|
'is_real' => array(
|
|
'7.4' => false,
|
|
'alternative' => 'is_float()',
|
|
),
|
|
'money_format' => array(
|
|
'7.4' => false,
|
|
'alternative' => 'NumberFormatter::formatCurrency()',
|
|
),
|
|
'restore_include_path' => array(
|
|
'7.4' => false,
|
|
'alternative' => "ini_restore('include_path')",
|
|
),
|
|
'ibase_add_user' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_affected_rows' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_backup' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_add' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_cancel' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_close' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_create' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_echo' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_get' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_import' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_info' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_blob_open' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_close' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_commit_ret' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_commit' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_connect' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_db_info' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_delete_user' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_drop_db' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_errcode' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_errmsg' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_execute' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_fetch_assoc' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_fetch_object' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_fetch_row' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_field_info' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_free_event_handler' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_free_query' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_free_result' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_gen_id' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_maintain_db' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_modify_user' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_name_result' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_num_fields' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_num_params' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_param_info' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_pconnect' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_prepare' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_query' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_restore' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_rollback_ret' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_rollback' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_server_info' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_service_attach' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_service_detach' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_set_event_handler' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_trans' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ibase_wait_event' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'ldap_control_paged_result_response' => array(
|
|
'7.4' => false,
|
|
'alternative' => 'ldap_search()',
|
|
),
|
|
'ldap_control_paged_result' => array(
|
|
'7.4' => false,
|
|
'alternative' => 'ldap_search()',
|
|
),
|
|
'recode_file' => array(
|
|
'7.4' => true,
|
|
'alternative' => 'the iconv or mbstring extension',
|
|
),
|
|
'recode_string' => array(
|
|
'7.4' => true,
|
|
'alternative' => 'the iconv or mbstring extension',
|
|
),
|
|
'recode' => array(
|
|
'7.4' => true,
|
|
'alternative' => 'the iconv or mbstring extension',
|
|
),
|
|
'wddx_add_vars' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'wddx_deserialize' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'wddx_packet_end' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'wddx_packet_start' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'wddx_serialize_value' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
'wddx_serialize_vars' => array(
|
|
'7.4' => true,
|
|
'alternative' => null,
|
|
),
|
|
);
|
|
|
|
|
|
/**
|
|
* Returns an array of tokens this test wants to listen for.
|
|
*
|
|
* @since 5.6
|
|
*
|
|
* @return array
|
|
*/
|
|
public function register()
|
|
{
|
|
// Handle case-insensitivity of function names.
|
|
$this->removedFunctions = $this->arrayKeysToLowercase($this->removedFunctions);
|
|
|
|
return array(\T_STRING);
|
|
}
|
|
|
|
|
|
/**
|
|
* Processes this test, when one of its tokens is encountered.
|
|
*
|
|
* @since 5.5
|
|
*
|
|
* @param \PHP_CodeSniffer_File $phpcsFile The file being scanned.
|
|
* @param int $stackPtr The position of the current token in
|
|
* the stack passed in $tokens.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function process(File $phpcsFile, $stackPtr)
|
|
{
|
|
$tokens = $phpcsFile->getTokens();
|
|
|
|
$ignore = array(
|
|
\T_DOUBLE_COLON => true,
|
|
\T_OBJECT_OPERATOR => true,
|
|
\T_FUNCTION => true,
|
|
\T_CLASS => true,
|
|
\T_CONST => true,
|
|
\T_USE => true,
|
|
\T_NS_SEPARATOR => true,
|
|
);
|
|
|
|
$prevToken = $phpcsFile->findPrevious(\T_WHITESPACE, ($stackPtr - 1), null, true);
|
|
if (isset($ignore[$tokens[$prevToken]['code']]) === true) {
|
|
// Not a call to a PHP function.
|
|
return;
|
|
}
|
|
|
|
$function = $tokens[$stackPtr]['content'];
|
|
$functionLc = strtolower($function);
|
|
|
|
if (isset($this->removedFunctions[$functionLc]) === false) {
|
|
return;
|
|
}
|
|
|
|
$itemInfo = array(
|
|
'name' => $function,
|
|
'nameLc' => $functionLc,
|
|
);
|
|
$this->handleFeature($phpcsFile, $stackPtr, $itemInfo);
|
|
}
|
|
|
|
|
|
/**
|
|
* Get the relevant sub-array for a specific item from a multi-dimensional array.
|
|
*
|
|
* @since 7.1.0
|
|
*
|
|
* @param array $itemInfo Base information about the item.
|
|
*
|
|
* @return array Version and other information about the item.
|
|
*/
|
|
public function getItemArray(array $itemInfo)
|
|
{
|
|
return $this->removedFunctions[$itemInfo['nameLc']];
|
|
}
|
|
|
|
|
|
/**
|
|
* Get the error message template for this sniff.
|
|
*
|
|
* @since 7.1.0
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function getErrorMsgTemplate()
|
|
{
|
|
return 'Function %s() is ';
|
|
}
|
|
}
|