/src/idl/file.idl.php

https://github.com/zsj888/hiphop-php · PHP · 325 lines · 238 code · 75 blank · 12 comment · 0 complexity · 83a06340b4ecd30bdfd5999c6dabd357 MD5 · raw file

  1. <?php
  2. include_once 'base.php';
  3. ///////////////////////////////////////////////////////////////////////////////
  4. // constants
  5. k("STDIN", Resource);
  6. k("STDOUT", Resource);
  7. k("STDERR", Resource);
  8. ///////////////////////////////////////////////////////////////////////////////
  9. // file handle based file operations
  10. f('fopen', Variant,
  11. array('filename' => String,
  12. 'mode' => String,
  13. 'use_include_path' => array(Boolean, 'false'),
  14. 'context' => array(Resource, 'null_object')));
  15. f('popen', Variant,
  16. array('command' => String,
  17. 'mode' => String));
  18. f('fclose', Boolean,
  19. array('handle' => Resource));
  20. f('pclose', Variant,
  21. array('handle' => Resource));
  22. f('fseek', Variant,
  23. array('handle' => Resource,
  24. 'offset' => Int64,
  25. 'whence' => array(Int64, 'SEEK_SET')));
  26. f('rewind', Boolean,
  27. array('handle' => Resource));
  28. f('ftell', Variant,
  29. array('handle' => Resource));
  30. f('feof', Boolean,
  31. array('handle' => Resource));
  32. f('fstat', Variant,
  33. array('handle' => Resource));
  34. f('fread', Variant,
  35. array('handle' => Resource,
  36. 'length' => Int64));
  37. f('fgetc', Variant,
  38. array('handle' => Resource));
  39. f('fgets', Variant,
  40. array('handle' => Resource,
  41. 'length' => array(Int64, '1024')));
  42. f('fgetss', Variant,
  43. array('handle' => Resource,
  44. 'length' => array(Int64, '0'),
  45. 'allowable_tags' => array(String, 'null_string')));
  46. f('fscanf', Variant,
  47. array('handle' => Resource,
  48. 'format' => String),
  49. ReferenceVariableArguments);
  50. f('fpassthru', Variant,
  51. array('handle' => Resource));
  52. f('fwrite', Variant,
  53. array('handle' => Resource,
  54. 'data' => String,
  55. 'length' => array(Int64, '0')));
  56. f('fputs', Variant,
  57. array('handle' => Resource,
  58. 'data' => String,
  59. 'length' => array(Int64, '0')));
  60. f('fprintf', Variant,
  61. array('handle' => Resource,
  62. 'format' => String),
  63. VariableArguments);
  64. f('vfprintf', Variant,
  65. array('handle' => Resource,
  66. 'format' => String,
  67. 'args' => VariantVec));
  68. f('fflush', Boolean,
  69. array('handle' => Resource));
  70. f('ftruncate', Boolean,
  71. array('handle' => Resource,
  72. 'size' => Int64));
  73. f('flock', Boolean,
  74. array('handle' => Resource,
  75. 'operation' => Int32,
  76. 'wouldblock' => array(Boolean | Reference, 'null')));
  77. f('fputcsv', Variant,
  78. array('handle' => Resource,
  79. 'fields' => VariantVec,
  80. 'delimiter' => array(String, '","'),
  81. 'enclosure' => array(String, '"\""')));
  82. f('fgetcsv', Variant,
  83. array('handle' => Resource,
  84. 'length' => array(Int64, '0'),
  85. 'delimiter' => array(String, '","'),
  86. 'enclosure' => array(String, '"\""')));
  87. ///////////////////////////////////////////////////////////////////////////////
  88. // file name based file operations
  89. f('file_get_contents', Variant,
  90. array('filename' => String,
  91. 'use_include_path' => array(Boolean, 'false'),
  92. 'context' => array(Resource, 'null_object'),
  93. 'offset' => array(Int64, '0'),
  94. 'maxlen' => array(Int64, '0')));
  95. f('file_put_contents', Variant,
  96. array('filename' => String,
  97. 'data' => Variant,
  98. 'flags' => array(Int32, '0'),
  99. 'context' => array(Resource, 'null_object')));
  100. f('file', Variant,
  101. array('filename' => String,
  102. 'flags' => array(Int32, '0'),
  103. 'context' => array(Resource, 'null_object')));
  104. f('readfile', Variant,
  105. array('filename' => String,
  106. 'use_include_path' => array(Boolean, 'false'),
  107. 'context' => array(Resource, 'null_object')));
  108. f('move_uploaded_file', Boolean,
  109. array('filename' => String,
  110. 'destination' => String));
  111. f('parse_ini_file', Variant,
  112. array('filename' => String,
  113. 'process_sections' => array(Boolean, 'false'),
  114. 'scanner_mode' => array(Int32, 'k_INI_SCANNER_NORMAL')));
  115. f('parse_ini_string', Variant,
  116. array('ini' => String,
  117. 'process_sections' => array(Boolean, 'false'),
  118. 'scanner_mode' => array(Int32, 'k_INI_SCANNER_NORMAL')));
  119. f('parse_hdf_file', Variant,
  120. array('filename' => String));
  121. f('parse_hdf_string', Variant,
  122. array('input' => String));
  123. f('write_hdf_file', Boolean,
  124. array('data' => VariantMap,
  125. 'filename' => String));
  126. f('write_hdf_string', String,
  127. array('data' => VariantMap));
  128. f('md5_file', Variant,
  129. array('filename' => String,
  130. 'raw_output' => array(Boolean, 'false')));
  131. f('sha1_file', Variant,
  132. array('filename' => String,
  133. 'raw_output' => array(Boolean, 'false')));
  134. ///////////////////////////////////////////////////////////////////////////////
  135. // shell commands
  136. f('chmod', Boolean,
  137. array('filename' => String,
  138. 'mode' => Int64));
  139. f('chown', Boolean,
  140. array('filename' => String,
  141. 'user' => Primitive));
  142. f('lchown', Boolean,
  143. array('filename' => String,
  144. 'user' => Variant));
  145. f('chgrp', Boolean,
  146. array('filename' => String,
  147. 'group' => Primitive));
  148. f('lchgrp', Boolean,
  149. array('filename' => String,
  150. 'group' => Variant));
  151. f('touch', Boolean,
  152. array('filename' => String,
  153. 'mtime' => array(Int64, '0'),
  154. 'atime' => array(Int64, '0')));
  155. f('copy', Boolean,
  156. array('source' => String,
  157. 'dest' => String,
  158. 'context' => array(Resource, 'null_object')));
  159. f('rename', Boolean,
  160. array('oldname' => String,
  161. 'newname' => String,
  162. 'context' => array(Resource, 'null_object')));
  163. f('umask', Int32,
  164. array('mask' => array(Variant, 'null_variant')));
  165. f('unlink', Boolean,
  166. array('filename' => String,
  167. 'context' => array(Resource, 'null_object')));
  168. f('link', Boolean,
  169. array('target' => String,
  170. 'link' => String));
  171. f('symlink', Boolean,
  172. array('target' => String,
  173. 'link' => String));
  174. f('basename', String,
  175. array('path' => String,
  176. 'suffix' => array(String, 'null_string')));
  177. f('fnmatch', Boolean,
  178. array('pattern' => String,
  179. 'filename' => String,
  180. 'flags' => array(Int32, '0')));
  181. f('glob', Variant,
  182. array('pattern' => String,
  183. 'flags' => array(Int32, '0')));
  184. f('tempnam', Variant,
  185. array('dir' => String,
  186. 'prefix' => String));
  187. f('tmpfile', Variant);
  188. ///////////////////////////////////////////////////////////////////////////////
  189. // stats functions
  190. f('fileperms', Variant, array('filename' => String));
  191. f('fileinode', Variant, array('filename' => String));
  192. f('filesize', Variant, array('filename' => String));
  193. f('fileowner', Variant, array('filename' => String));
  194. f('filegroup', Variant, array('filename' => String));
  195. f('fileatime', Variant, array('filename' => String));
  196. f('filemtime', Variant, array('filename' => String));
  197. f('filectime', Variant, array('filename' => String));
  198. f('filetype', Variant, array('filename' => String));
  199. f('linkinfo', Variant, array('filename' => String));
  200. f('is_writable', Boolean, array('filename' => String));
  201. f('is_writeable', Boolean, array('filename' => String));
  202. f('is_readable', Boolean, array('filename' => String));
  203. f('is_executable', Boolean, array('filename' => String));
  204. f('is_file', Boolean, array('filename' => String));
  205. f('is_dir', Boolean, array('filename' => String));
  206. f('is_link', Boolean, array('filename' => String));
  207. f('is_uploaded_file', Boolean, array('filename' => String));
  208. f('file_exists', Boolean, array('filename' => String));
  209. f('stat', Variant, array('filename' => String));
  210. f('lstat', Variant, array('filename' => String));
  211. f('clearstatcache');
  212. f('readlink', Variant, array('path' => String));
  213. f('realpath', Variant, array('path' => String));
  214. f('pathinfo', Variant, array('path' => String,
  215. 'opt' => array(Int32, '15')));
  216. f('disk_free_space', Variant, array('directory' => String));
  217. f('diskfreespace', Variant, array('directory' => String));
  218. f('disk_total_space', Variant, array('directory' => String));
  219. ///////////////////////////////////////////////////////////////////////////////
  220. // directory functions
  221. f('mkdir', Boolean,
  222. array('pathname' => String,
  223. 'mode' => array(Int64, '0777'),
  224. 'recursive' => array(Boolean, 'false'),
  225. 'context' => array(Resource, 'null_object')));
  226. f('rmdir', Boolean,
  227. array('dirname' => String,
  228. 'context' => array(Resource, 'null_object')));
  229. f('dirname', String,
  230. array('path' => String));
  231. f('getcwd', Variant);
  232. f('chdir', Boolean,
  233. array('directory' => String));
  234. f('chroot', Boolean,
  235. array('directory' => String));
  236. f('dir', Variant,
  237. array('directory' => String));
  238. f('opendir', Variant,
  239. array('path' => String,
  240. 'context' => array(Resource, 'null')));
  241. f('readdir', Variant,
  242. array('dir_handle' => Resource));
  243. f('rewinddir', NULL,
  244. array('dir_handle' => Resource));
  245. f('scandir', Variant,
  246. array('directory' => String,
  247. 'descending' => array(Boolean, 'false'),
  248. 'context' => array(Resource, 'null')));
  249. f('closedir', NULL,
  250. array('dir_handle' => Resource));