PageRenderTime 59ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/docroot/profiles/ra/modules/contrib/coder/coder_sniffer/Drupal/Sniffs/Semantics/FunctionAliasSniff.php

https://bitbucket.org/gsteshenko/ra
PHP | 356 lines | 302 code | 10 blank | 44 comment | 0 complexity | 55632566f9ae6389bdebb145503631b6 MD5 | raw file
  1. <?php
  2. /**
  3. * Drupal_Sniffs_Semantics_FunctionAliasSniff
  4. *
  5. * PHP version 5
  6. *
  7. * @category PHP
  8. * @package PHP_CodeSniffer
  9. * @link http://pear.php.net/package/PHP_CodeSniffer
  10. */
  11. /**
  12. * Checks that no PHP function name aliases are used.
  13. *
  14. * @category PHP
  15. * @package PHP_CodeSniffer
  16. * @link http://pear.php.net/package/PHP_CodeSniffer
  17. */
  18. class Drupal_Sniffs_Semantics_FunctionAliasSniff extends Drupal_Sniffs_Semantics_FunctionCall
  19. {
  20. /**
  21. * Holds all PHP funtion name aliases (keys) and orginals (values). See
  22. * http://php.net/manual/en/aliases.php
  23. *
  24. * @var array
  25. */
  26. protected $aliases = array(
  27. '_' => 'gettext',
  28. 'add' => 'swfmovie_add',
  29. 'add' => 'swfsprite_add',
  30. 'add_root' => 'domxml_add_root',
  31. 'addaction' => 'swfbutton_addAction',
  32. 'addcolor' => 'swfdisplayitem_addColor',
  33. 'addentry' => 'swfgradient_addEntry',
  34. 'addfill' => 'swfshape_addfill',
  35. 'addshape' => 'swfbutton_addShape',
  36. 'addstring' => 'swftext_addString',
  37. 'addstring' => 'swftextfield_addString',
  38. 'align' => 'swftextfield_align',
  39. 'attributes' => 'domxml_attributes',
  40. 'children' => 'domxml_children',
  41. 'chop' => 'rtrim',
  42. 'close' => 'closedir',
  43. 'com_get' => 'com_propget',
  44. 'com_propset' => 'com_propput',
  45. 'com_set' => 'com_propput',
  46. 'die' => 'exit',
  47. 'dir' => 'getdir',
  48. 'diskfreespace' => 'disk_free_space',
  49. 'domxml_getattr' => 'domxml_get_attribute',
  50. 'domxml_setattr' => 'domxml_set_attribute',
  51. 'doubleval' => 'floatval',
  52. 'drawarc' => 'swfshape_drawarc',
  53. 'drawcircle' => 'swfshape_drawcircle',
  54. 'drawcubic' => 'swfshape_drawcubic',
  55. 'drawcubicto' => 'swfshape_drawcubicto',
  56. 'drawcurve' => 'swfshape_drawcurve',
  57. 'drawcurveto' => 'swfshape_drawcurveto',
  58. 'drawglyph' => 'swfshape_drawglyph',
  59. 'drawline' => 'swfshape_drawline',
  60. 'drawlineto' => 'swfshape_drawlineto',
  61. 'dtd' => 'domxml_intdtd',
  62. 'dumpmem' => 'domxml_dumpmem',
  63. 'fbsql' => 'fbsql_db_query',
  64. 'fputs' => 'fwrite',
  65. 'get_attribute' => 'domxml_get_attribute',
  66. 'getascent' => 'swffont_getAscent',
  67. 'getascent' => 'swftext_getAscent',
  68. 'getattr' => 'domxml_get_attribute',
  69. 'getdescent' => 'swffont_getDescent',
  70. 'getdescent' => 'swftext_getDescent',
  71. 'getheight' => 'swfbitmap_getHeight',
  72. 'getleading' => 'swffont_getLeading',
  73. 'getleading' => 'swftext_getLeading',
  74. 'getshape1' => 'swfmorph_getShape1',
  75. 'getshape2' => 'swfmorph_getShape2',
  76. 'getwidth' => 'swfbitmap_getWidth',
  77. 'getwidth' => 'swffont_getWidth',
  78. 'getwidth' => 'swftext_getWidth',
  79. 'gzputs' => 'gzwrite',
  80. 'i18n_convert' => 'mb_convert_encoding',
  81. 'i18n_discover_encoding' => 'mb_detect_encoding',
  82. 'i18n_http_input' => 'mb_http_input',
  83. 'i18n_http_output' => 'mb_http_output',
  84. 'i18n_internal_encoding' => 'mb_internal_encoding',
  85. 'i18n_ja_jp_hantozen' => 'mb_convert_kana',
  86. 'i18n_mime_header_decode' => 'mb_decode_mimeheader',
  87. 'i18n_mime_header_encode' => 'mb_encode_mimeheader',
  88. 'imap_create' => 'imap_createmailbox',
  89. 'imap_fetchtext' => 'imap_body',
  90. 'imap_getmailboxes' => 'imap_list_full',
  91. 'imap_getsubscribed' => 'imap_lsub_full',
  92. 'imap_header' => 'imap_headerinfo',
  93. 'imap_listmailbox' => 'imap_list',
  94. 'imap_listsubscribed' => 'imap_lsub',
  95. 'imap_rename' => 'imap_renamemailbox',
  96. 'imap_scan' => 'imap_listscan',
  97. 'imap_scanmailbox' => 'imap_listscan',
  98. 'ini_alter' => 'ini_set',
  99. 'is_double' => 'is_float',
  100. 'is_integer' => 'is_int',
  101. 'is_long' => 'is_int',
  102. 'is_real' => 'is_float',
  103. 'is_writeable' => 'is_writable',
  104. 'join' => 'implode',
  105. 'key_exists' => 'array_key_exists',
  106. 'labelframe' => 'swfmovie_labelFrame',
  107. 'labelframe' => 'swfsprite_labelFrame',
  108. 'last_child' => 'domxml_last_child',
  109. 'lastchild' => 'domxml_last_child',
  110. 'ldap_close' => 'ldap_unbind',
  111. 'magic_quotes_runtime' => 'set_magic_quotes_runtime',
  112. 'mbstrcut' => 'mb_strcut',
  113. 'mbstrlen' => 'mb_strlen',
  114. 'mbstrpos' => 'mb_strpos',
  115. 'mbstrrpos' => 'mb_strrpos',
  116. 'mbsubstr' => 'mb_substr',
  117. 'ming_setcubicthreshold' => 'ming_setCubicThreshold',
  118. 'ming_setscale' => 'ming_setScale',
  119. 'move' => 'swfdisplayitem_move',
  120. 'movepen' => 'swfshape_movepen',
  121. 'movepento' => 'swfshape_movepento',
  122. 'moveto' => 'swfdisplayitem_moveTo',
  123. 'moveto' => 'swffill_moveTo',
  124. 'moveto' => 'swftext_moveTo',
  125. 'msql' => 'msql_db_query',
  126. 'msql_createdb' => 'msql_create_db',
  127. 'msql_dbname' => 'msql_result',
  128. 'msql_dropdb' => 'msql_drop_db',
  129. 'msql_fieldflags' => 'msql_field_flags',
  130. 'msql_fieldlen' => 'msql_field_len',
  131. 'msql_fieldname' => 'msql_field_name',
  132. 'msql_fieldtable' => 'msql_field_table',
  133. 'msql_fieldtype' => 'msql_field_type',
  134. 'msql_freeresult' => 'msql_free_result',
  135. 'msql_listdbs' => 'msql_list_dbs',
  136. 'msql_listfields' => 'msql_list_fields',
  137. 'msql_listtables' => 'msql_list_tables',
  138. 'msql_numfields' => 'msql_num_fields',
  139. 'msql_numrows' => 'msql_num_rows',
  140. 'msql_regcase' => 'sql_regcase',
  141. 'msql_selectdb' => 'msql_select_db',
  142. 'msql_tablename' => 'msql_result',
  143. 'mssql_affected_rows' => 'sybase_affected_rows',
  144. 'mssql_affected_rows' => 'sybase_affected_rows',
  145. 'mssql_close' => 'sybase_close',
  146. 'mssql_close' => 'sybase_close',
  147. 'mssql_connect' => 'sybase_connect',
  148. 'mssql_connect' => 'sybase_connect',
  149. 'mssql_data_seek' => 'sybase_data_seek',
  150. 'mssql_data_seek' => 'sybase_data_seek',
  151. 'mssql_fetch_array' => 'sybase_fetch_array',
  152. 'mssql_fetch_array' => 'sybase_fetch_array',
  153. 'mssql_fetch_field' => 'sybase_fetch_field',
  154. 'mssql_fetch_field' => 'sybase_fetch_field',
  155. 'mssql_fetch_object' => 'sybase_fetch_object',
  156. 'mssql_fetch_object' => 'sybase_fetch_object',
  157. 'mssql_fetch_row' => 'sybase_fetch_row',
  158. 'mssql_fetch_row' => 'sybase_fetch_row',
  159. 'mssql_field_seek' => 'sybase_field_seek',
  160. 'mssql_field_seek' => 'sybase_field_seek',
  161. 'mssql_free_result' => 'sybase_free_result',
  162. 'mssql_free_result' => 'sybase_free_result',
  163. 'mssql_get_last_message' => 'sybase_get_last_message',
  164. 'mssql_get_last_message' => 'sybase_get_last_message',
  165. 'mssql_min_client_severity' => 'sybase_min_client_severity',
  166. 'mssql_min_error_severity' => 'sybase_min_error_severity',
  167. 'mssql_min_message_severity' => 'sybase_min_message_severity',
  168. 'mssql_min_server_severity' => 'sybase_min_server_severity',
  169. 'mssql_num_fields' => 'sybase_num_fields',
  170. 'mssql_num_fields' => 'sybase_num_fields',
  171. 'mssql_num_rows' => 'sybase_num_rows',
  172. 'mssql_num_rows' => 'sybase_num_rows',
  173. 'mssql_pconnect' => 'sybase_pconnect',
  174. 'mssql_pconnect' => 'sybase_pconnect',
  175. 'mssql_query' => 'sybase_query',
  176. 'mssql_query' => 'sybase_query',
  177. 'mssql_result' => 'sybase_result',
  178. 'mssql_result' => 'sybase_result',
  179. 'mssql_select_db' => 'sybase_select_db',
  180. 'mssql_select_db' => 'sybase_select_db',
  181. 'multcolor' => 'swfdisplayitem_multColor',
  182. 'mysql' => 'mysql_db_query',
  183. 'mysql_createdb' => 'mysql_create_db',
  184. 'mysql_db_name' => 'mysql_result',
  185. 'mysql_dbname' => 'mysql_result',
  186. 'mysql_dropdb' => 'mysql_drop_db',
  187. 'mysql_fieldflags' => 'mysql_field_flags',
  188. 'mysql_fieldlen' => 'mysql_field_len',
  189. 'mysql_fieldname' => 'mysql_field_name',
  190. 'mysql_fieldtable' => 'mysql_field_table',
  191. 'mysql_fieldtype' => 'mysql_field_type',
  192. 'mysql_freeresult' => 'mysql_free_result',
  193. 'mysql_listdbs' => 'mysql_list_dbs',
  194. 'mysql_listfields' => 'mysql_list_fields',
  195. 'mysql_listtables' => 'mysql_list_tables',
  196. 'mysql_numfields' => 'mysql_num_fields',
  197. 'mysql_numrows' => 'mysql_num_rows',
  198. 'mysql_selectdb' => 'mysql_select_db',
  199. 'mysql_tablename' => 'mysql_result',
  200. 'name' => 'domxml_attrname',
  201. 'new_child' => 'domxml_new_child',
  202. 'new_xmldoc' => 'domxml_new_xmldoc',
  203. 'nextframe' => 'swfmovie_nextFrame',
  204. 'nextframe' => 'swfsprite_nextFrame',
  205. 'node' => 'domxml_node',
  206. 'oci8append' => 'ocicollappend',
  207. 'oci8assign' => 'ocicollassign',
  208. 'oci8assignelem' => 'ocicollassignelem',
  209. 'oci8close' => 'ocicloselob',
  210. 'oci8free' => 'ocifreecoll',
  211. 'oci8free' => 'ocifreedesc',
  212. 'oci8getelem' => 'ocicollgetelem',
  213. 'oci8load' => 'ociloadlob',
  214. 'oci8max' => 'ocicollmax',
  215. 'oci8ocifreecursor' => 'ocifreestatement',
  216. 'oci8save' => 'ocisavelob',
  217. 'oci8savefile' => 'ocisavelobfile',
  218. 'oci8size' => 'ocicollsize',
  219. 'oci8trim' => 'ocicolltrim',
  220. 'oci8writetemporary' => 'ociwritetemporarylob',
  221. 'oci8writetofile' => 'ociwritelobtofile',
  222. 'odbc_do' => 'odbc_exec',
  223. 'odbc_field_precision' => 'odbc_field_len',
  224. 'output' => 'swfmovie_output',
  225. 'parent' => 'domxml_parent',
  226. 'pdf_add_outline' => 'pdf_add_bookmark',
  227. 'pg_clientencoding' => 'pg_client_encoding',
  228. 'pg_setclientencoding' => 'pg_set_client_encoding',
  229. 'pos' => 'current',
  230. 'recode' => 'recode_string',
  231. 'remove' => 'swfmovie_remove',
  232. 'remove' => 'swfsprite_remove',
  233. 'rewind' => 'rewinddir',
  234. 'root' => 'domxml_root',
  235. 'rotate' => 'swfdisplayitem_rotate',
  236. 'rotateto' => 'swfdisplayitem_rotateTo',
  237. 'rotateto' => 'swffill_rotateTo',
  238. 'save' => 'swfmovie_save',
  239. 'savetofile' => 'swfmovie_saveToFile',
  240. 'scale' => 'swfdisplayitem_scale',
  241. 'scaleto' => 'swfdisplayitem_scaleTo',
  242. 'scaleto' => 'swffill_scaleTo',
  243. 'set_attribute' => 'domxml_set_attribute',
  244. 'set_content' => 'domxml_set_content',
  245. 'setaction' => 'swfbutton_setAction',
  246. 'setattr' => 'domxml_set_attribute',
  247. 'setbackground' => 'swfmovie_setBackground',
  248. 'setbounds' => 'swftextfield_setBounds',
  249. 'setcolor' => 'swftext_setColor',
  250. 'setcolor' => 'swftextfield_setColor',
  251. 'setdepth' => 'swfdisplayitem_setDepth',
  252. 'setdimension' => 'swfmovie_setDimension',
  253. 'setdown' => 'swfbutton_setDown',
  254. 'setfont' => 'swftext_setFont',
  255. 'setfont' => 'swftextfield_setFont',
  256. 'setframes' => 'swfmovie_setFrames',
  257. 'setframes' => 'swfsprite_setFrames',
  258. 'setheight' => 'swftext_setHeight',
  259. 'setheight' => 'swftextfield_setHeight',
  260. 'sethit' => 'swfbutton_setHit',
  261. 'setindentation' => 'swftextfield_setIndentation',
  262. 'setleftfill' => 'swfshape_setleftfill',
  263. 'setleftmargin' => 'swftextfield_setLeftMargin',
  264. 'setline' => 'swfshape_setline',
  265. 'setlinespacing' => 'swftextfield_setLineSpacing',
  266. 'setmargins' => 'swftextfield_setMargins',
  267. 'setmatrix' => 'swfdisplayitem_setMatrix',
  268. 'setname' => 'swfdisplayitem_setName',
  269. 'setname' => 'swftextfield_setName',
  270. 'setover' => 'swfbutton_setOver',
  271. 'setrate' => 'swfmovie_setRate',
  272. 'setratio' => 'swfdisplayitem_setRatio',
  273. 'setrightfill' => 'swfshape_setrightfill',
  274. 'setrightmargin' => 'swftextfield_setRightMargin',
  275. 'setspacing' => 'swftext_setSpacing',
  276. 'setup' => 'swfbutton_setUp',
  277. 'show_source' => 'highlight_file',
  278. 'sizeof' => 'count',
  279. 'skewx' => 'swfdisplayitem_skewX',
  280. 'skewxto' => 'swfdisplayitem_skewXTo',
  281. 'skewxto' => 'swffill_skewXTo',
  282. 'skewy' => 'swfdisplayitem_skewY',
  283. 'skewyto' => 'swfdisplayitem_skewYTo',
  284. 'skewyto' => 'swffill_skewYTo',
  285. 'snmpwalkoid' => 'snmprealwalk',
  286. 'strchr' => 'strstr',
  287. 'streammp3' => 'swfmovie_streamMp3',
  288. 'swfaction' => 'swfaction_init',
  289. 'swfbitmap' => 'swfbitmap_init',
  290. 'swfbutton' => 'swfbutton_init',
  291. 'swffill' => 'swffill_init',
  292. 'swffont' => 'swffont_init',
  293. 'swfgradient' => 'swfgradient_init',
  294. 'swfmorph' => 'swfmorph_init',
  295. 'swfmovie' => 'swfmovie_init',
  296. 'swfshape' => 'swfshape_init',
  297. 'swfsprite' => 'swfsprite_init',
  298. 'swftext' => 'swftext_init',
  299. 'swftextfield' => 'swftextfield_init',
  300. 'unlink' => 'domxml_unlink_node',
  301. 'xptr_new_context' => 'xpath_new_context',
  302. );
  303. /**
  304. * Returns an array of function names this test wants to listen for.
  305. *
  306. * @return array
  307. */
  308. public function registerFunctionNames()
  309. {
  310. return array_keys($this->aliases);
  311. }//end registerFunctionNames()
  312. /**
  313. * Processes this function call.
  314. *
  315. * @param PHP_CodeSniffer_File $phpcsFile
  316. * The file being scanned.
  317. * @param int $stackPtr
  318. * The position of the function call in the stack.
  319. * @param int $openBracket
  320. * The position of the opening parenthesis in the stack.
  321. * @param int $closeBracket
  322. * The position of the closing parenthesis in the stack.
  323. * @param Drupal_Sniffs_Semantics_FunctionCallSniff $sniff
  324. * Can be used to retreive the function's arguments with the getArgument()
  325. * method.
  326. *
  327. * @return void
  328. */
  329. public function processFunctionCall(
  330. PHP_CodeSniffer_File $phpcsFile,
  331. $stackPtr,
  332. $openBracket,
  333. $closeBracket,
  334. Drupal_Sniffs_Semantics_FunctionCallSniff $sniff
  335. ) {
  336. $tokens = $phpcsFile->getTokens();
  337. $error = '%s() is a function name alias, use %s() instead';
  338. $name = $tokens[$stackPtr]['content'];
  339. $data = array(
  340. $name,
  341. $this->aliases[$name],
  342. );
  343. $phpcsFile->addError($error, $stackPtr, 'FunctionAlias', $data);
  344. }//end processFunctionCall()
  345. }//end class
  346. ?>