~ubuntu-branches/ubuntu/wily/phabricator/wily

« back to all changes in this revision

Viewing changes to arcanist/src/lint/linter/xhpast/rules/ArcanistAliasFunctionXHPASTLinterRule.php

  • Committer: Package Import Robot
  • Author(s): Richard Sellam
  • Date: 2015-06-13 10:52:10 UTC
  • mfrom: (0.30.1) (0.29.1) (0.17.4) (2.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20150613105210-5uirr7tvnk0n6e6y
Tags: 0~git20150613-1
* New snapshot release (closes: #787805)
* fixed typo in logrotate script (closes: #787645)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
final class ArcanistAliasFunctionXHPASTLinterRule
 
4
  extends ArcanistXHPASTLinterRule {
 
5
 
 
6
  const ID = 65;
 
7
 
 
8
  public function getLintName() {
 
9
    return pht('Alias Functions');
 
10
  }
 
11
 
 
12
  public function getLintSeverity() {
 
13
    return ArcanistLintSeverity::SEVERITY_ADVICE;
 
14
  }
 
15
 
 
16
  public function process(XHPASTNode $root) {
 
17
    $aliases = $this->getFunctionAliases();
 
18
    $functions = $this->getFunctionCalls($root, array_keys($aliases));
 
19
 
 
20
    foreach ($functions as $function) {
 
21
      $function_name = $function->getChildByIndex(0);
 
22
 
 
23
      $this->raiseLintAtNode(
 
24
        $function_name,
 
25
        pht('Alias functions should be avoided.'),
 
26
        $aliases[phutil_utf8_strtolower($function_name->getConcreteString())]);
 
27
    }
 
28
  }
 
29
 
 
30
  public function getFunctionAliases() {
 
31
    return array(
 
32
      '_' => 'gettext',
 
33
      'chop' => 'rtrim',
 
34
      'close' => 'closedir',
 
35
      'com_get' => 'com_propget',
 
36
      'com_propset' => 'com_propput',
 
37
      'com_set' => 'com_propput',
 
38
      'die' => 'exit',
 
39
      'diskfreespace' => 'disk_free_space',
 
40
      'doubleval' => 'floatval',
 
41
      'drawarc' => 'swfshape_drawarc',
 
42
      'drawcircle' => 'swfshape_drawcircle',
 
43
      'drawcubic' => 'swfshape_drawcubic',
 
44
      'drawcubicto' => 'swfshape_drawcubicto',
 
45
      'drawcurve' => 'swfshape_drawcurve',
 
46
      'drawcurveto' => 'swfshape_drawcurveto',
 
47
      'drawglyph' => 'swfshape_drawglyph',
 
48
      'drawline' => 'swfshape_drawline',
 
49
      'drawlineto' => 'swfshape_drawlineto',
 
50
      'fbsql' => 'fbsql_db_query',
 
51
      'fputs' => 'fwrite',
 
52
      'gzputs' => 'gzwrite',
 
53
      'i18n_convert' => 'mb_convert_encoding',
 
54
      'i18n_discover_encoding' => 'mb_detect_encoding',
 
55
      'i18n_http_input' => 'mb_http_input',
 
56
      'i18n_http_output' => 'mb_http_output',
 
57
      'i18n_internal_encoding' => 'mb_internal_encoding',
 
58
      'i18n_ja_jp_hantozen' => 'mb_convert_kana',
 
59
      'i18n_mime_header_decode' => 'mb_decode_mimeheader',
 
60
      'i18n_mime_header_encode' => 'mb_encode_mimeheader',
 
61
      'imap_create' => 'imap_createmailbox',
 
62
      'imap_fetchtext' => 'imap_body',
 
63
      'imap_getmailboxes' => 'imap_list_full',
 
64
      'imap_getsubscribed' => 'imap_lsub_full',
 
65
      'imap_header' => 'imap_headerinfo',
 
66
      'imap_listmailbox' => 'imap_list',
 
67
      'imap_listsubscribed' => 'imap_lsub',
 
68
      'imap_rename' => 'imap_renamemailbox',
 
69
      'imap_scan' => 'imap_listscan',
 
70
      'imap_scanmailbox' => 'imap_listscan',
 
71
      'ini_alter' => 'ini_set',
 
72
      'is_double' => 'is_float',
 
73
      'is_integer' => 'is_int',
 
74
      'is_long' => 'is_int',
 
75
      'is_real' => 'is_float',
 
76
      'is_writeable' => 'is_writable',
 
77
      'join' => 'implode',
 
78
      'key_exists' => 'array_key_exists',
 
79
      'ldap_close' => 'ldap_unbind',
 
80
      'magic_quotes_runtime' => 'set_magic_quotes_runtime',
 
81
      'mbstrcut' => 'mb_strcut',
 
82
      'mbstrlen' => 'mb_strlen',
 
83
      'mbstrpos' => 'mb_strpos',
 
84
      'mbstrrpos' => 'mb_strrpos',
 
85
      'mbsubstr' => 'mb_substr',
 
86
      'ming_setcubicthreshold' => 'ming_setCubicThreshold',
 
87
      'ming_setscale' => 'ming_setScale',
 
88
      'msql' => 'msql_db_query',
 
89
      'msql_createdb' => 'msql_create_db',
 
90
      'msql_dbname' => 'msql_result',
 
91
      'msql_dropdb' => 'msql_drop_db',
 
92
      'msql_fieldflags' => 'msql_field_flags',
 
93
      'msql_fieldlen' => 'msql_field_len',
 
94
      'msql_fieldname' => 'msql_field_name',
 
95
      'msql_fieldtable' => 'msql_field_table',
 
96
      'msql_fieldtype' => 'msql_field_type',
 
97
      'msql_freeresult' => 'msql_free_result',
 
98
      'msql_listdbs' => 'msql_list_dbs',
 
99
      'msql_listfields' => 'msql_list_fields',
 
100
      'msql_listtables' => 'msql_list_tables',
 
101
      'msql_numfields' => 'msql_num_fields',
 
102
      'msql_numrows' => 'msql_num_rows',
 
103
      'msql_regcase' => 'sql_regcase',
 
104
      'msql_selectdb' => 'msql_select_db',
 
105
      'msql_tablename' => 'msql_result',
 
106
      'mssql_affected_rows' => 'sybase_affected_rows',
 
107
      'mssql_close' => 'sybase_close',
 
108
      'mssql_connect' => 'sybase_connect',
 
109
      'mssql_data_seek' => 'sybase_data_seek',
 
110
      'mssql_fetch_array' => 'sybase_fetch_array',
 
111
      'mssql_fetch_field' => 'sybase_fetch_field',
 
112
      'mssql_fetch_object' => 'sybase_fetch_object',
 
113
      'mssql_fetch_row' => 'sybase_fetch_row',
 
114
      'mssql_field_seek' => 'sybase_field_seek',
 
115
      'mssql_free_result' => 'sybase_free_result',
 
116
      'mssql_get_last_message' => 'sybase_get_last_message',
 
117
      'mssql_min_client_severity' => 'sybase_min_client_severity',
 
118
      'mssql_min_error_severity' => 'sybase_min_error_severity',
 
119
      'mssql_min_message_severity' => 'sybase_min_message_severity',
 
120
      'mssql_min_server_severity' => 'sybase_min_server_severity',
 
121
      'mssql_num_fields' => 'sybase_num_fields',
 
122
      'mssql_num_rows' => 'sybase_num_rows',
 
123
      'mssql_pconnect' => 'sybase_pconnect',
 
124
      'mssql_query' => 'sybase_query',
 
125
      'mssql_result' => 'sybase_result',
 
126
      'mssql_select_db' => 'sybase_select_db',
 
127
      'multcolor' => 'swfdisplayitem_multColor',
 
128
      'mysql' => 'mysql_db_query',
 
129
      'mysql_createdb' => 'mysql_create_db',
 
130
      'mysql_db_name' => 'mysql_result',
 
131
      'mysql_dbname' => 'mysql_result',
 
132
      'mysql_dropdb' => 'mysql_drop_db',
 
133
      'mysql_fieldflags' => 'mysql_field_flags',
 
134
      'mysql_fieldlen' => 'mysql_field_len',
 
135
      'mysql_fieldname' => 'mysql_field_name',
 
136
      'mysql_fieldtable' => 'mysql_field_table',
 
137
      'mysql_fieldtype' => 'mysql_field_type',
 
138
      'mysql_freeresult' => 'mysql_free_result',
 
139
      'mysql_listdbs' => 'mysql_list_dbs',
 
140
      'mysql_listfields' => 'mysql_list_fields',
 
141
      'mysql_listtables' => 'mysql_list_tables',
 
142
      'mysql_numfields' => 'mysql_num_fields',
 
143
      'mysql_numrows' => 'mysql_num_rows',
 
144
      'mysql_selectdb' => 'mysql_select_db',
 
145
      'mysql_tablename' => 'mysql_result',
 
146
      'ociassignelem' => 'OCI-Collection::assignElem',
 
147
      'ocibindbyname' => 'oci_bind_by_name',
 
148
      'ocicancel' => 'oci_cancel',
 
149
      'ocicloselob' => 'OCI-Lob::close',
 
150
      'ocicollappend' => 'OCI-Collection::append',
 
151
      'ocicollassign' => 'OCI-Collection::assign',
 
152
      'ocicollmax' => 'OCI-Collection::max',
 
153
      'ocicollsize' => 'OCI-Collection::size',
 
154
      'ocicolltrim' => 'OCI-Collection::trim',
 
155
      'ocicolumnisnull' => 'oci_field_is_null',
 
156
      'ocicolumnname' => 'oci_field_name',
 
157
      'ocicolumnprecision' => 'oci_field_precision',
 
158
      'ocicolumnscale' => 'oci_field_scale',
 
159
      'ocicolumnsize' => 'oci_field_size',
 
160
      'ocicolumntype' => 'oci_field_type',
 
161
      'ocicolumntyperaw' => 'oci_field_type_raw',
 
162
      'ocicommit' => 'oci_commit',
 
163
      'ocidefinebyname' => 'oci_define_by_name',
 
164
      'ocierror' => 'oci_error',
 
165
      'ociexecute' => 'oci_execute',
 
166
      'ocifetch' => 'oci_fetch',
 
167
      'ocifetchinto' => 'oci_fetch_array(),',
 
168
      'ocifetchstatement' => 'oci_fetch_all',
 
169
      'ocifreecollection' => 'OCI-Collection::free',
 
170
      'ocifreecursor' => 'oci_free_statement',
 
171
      'ocifreedesc' => 'oci_free_descriptor',
 
172
      'ocifreestatement' => 'oci_free_statement',
 
173
      'ocigetelem' => 'OCI-Collection::getElem',
 
174
      'ociinternaldebug' => 'oci_internal_debug',
 
175
      'ociloadlob' => 'OCI-Lob::load',
 
176
      'ocilogon' => 'oci_connect',
 
177
      'ocinewcollection' => 'oci_new_collection',
 
178
      'ocinewcursor' => 'oci_new_cursor',
 
179
      'ocinewdescriptor' => 'oci_new_descriptor',
 
180
      'ocinlogon' => 'oci_new_connect',
 
181
      'ocinumcols' => 'oci_num_fields',
 
182
      'ociparse' => 'oci_parse',
 
183
      'ocipasswordchange' => 'oci_password_change',
 
184
      'ociplogon' => 'oci_pconnect',
 
185
      'ociresult' => 'oci_result',
 
186
      'ocirollback' => 'oci_rollback',
 
187
      'ocisavelob' => 'OCI-Lob::save',
 
188
      'ocisavelobfile' => 'OCI-Lob::import',
 
189
      'ociserverversion' => 'oci_server_version',
 
190
      'ocisetprefetch' => 'oci_set_prefetch',
 
191
      'ocistatementtype' => 'oci_statement_type',
 
192
      'ociwritelobtofile' => 'OCI-Lob::export',
 
193
      'ociwritetemporarylob' => 'OCI-Lob::writeTemporary',
 
194
      'odbc_do' => 'odbc_exec',
 
195
      'odbc_field_precision' => 'odbc_field_len',
 
196
      'pdf_add_outline' => 'pdf_add_bookmark',
 
197
      'pg_clientencoding' => 'pg_client_encoding',
 
198
      'pg_setclientencoding' => 'pg_set_client_encoding',
 
199
      'pos' => 'current',
 
200
      'recode' => 'recode_string',
 
201
      'show_source' => 'highlight_file',
 
202
      'sizeof' => 'count',
 
203
      'snmpwalkoid' => 'snmprealwalk',
 
204
      'strchr' => 'strstr',
 
205
      'streammp3' => 'swfmovie_streamMp3',
 
206
      'swfaction' => 'swfaction_init',
 
207
      'swfbitmap' => 'swfbitmap_init',
 
208
      'swfbutton' => 'swfbutton_init',
 
209
      'swffill' => 'swffill_init',
 
210
      'swffont' => 'swffont_init',
 
211
      'swfgradient' => 'swfgradient_init',
 
212
      'swfmorph' => 'swfmorph_init',
 
213
      'swfmovie' => 'swfmovie_init',
 
214
      'swfshape' => 'swfshape_init',
 
215
      'swfsprite' => 'swfsprite_init',
 
216
      'swftext' => 'swftext_init',
 
217
      'swftextfield' => 'swftextfield_init',
 
218
      'xptr_new_context' => 'xpath_new_context',
 
219
    );
 
220
  }
 
221
 
 
222
}