PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 1ms

/PHP/CompatInfo/Reference/core.php

http://github.com/llaville/php-compat-info
PHP | 361 lines | 268 code | 12 blank | 81 comment | 38 complexity | a8dcf896a20c88f24459e191c36e2c15 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. /**
  3. * Version informations about components always available with PHP
  4. *
  5. * PHP version 5
  6. *
  7. * @category PHP
  8. * @package PHP_CompatInfo
  9. * @author Laurent Laville <pear@laurent-laville.org>
  10. * @license http://www.opensource.org/licenses/bsd-license.php BSD License
  11. * @version SVN: $Id$
  12. * @link http://php5.laurent-laville.org/compatinfo/
  13. */
  14. /**
  15. * All interfaces, classes, functions, constants always available with PHP
  16. *
  17. * @category PHP
  18. * @package PHP_CompatInfo
  19. * @author Laurent Laville <pear@laurent-laville.org>
  20. * @license http://www.opensource.org/licenses/bsd-license.php BSD License
  21. * @version Release: @package_version@
  22. * @link http://php5.laurent-laville.org/compatinfo/
  23. */
  24. class PHP_CompatInfo_Reference_Core implements PHP_CompatInfo_Reference
  25. {
  26. /**
  27. * Gets all informations at once about:
  28. * extensions, interfaces, classes, functions, constants
  29. *
  30. * @param string $extension OPTIONAL
  31. * @param string $version OPTIONAL PHP version
  32. * (4 => only PHP4, 5 or null => PHP4 + PHP5)
  33. *
  34. * @return array
  35. */
  36. public function getAll($extension = null, $version = null)
  37. {
  38. $references = array(
  39. 'extensions' => $this->getExtensions($extension, $version),
  40. 'interfaces' => $this->getInterfaces($extension, $version),
  41. 'classes' => $this->getClasses($extension, $version),
  42. 'functions' => $this->getFunctions($extension, $version),
  43. 'constants' => $this->getConstants($extension, $version),
  44. );
  45. return $references;
  46. }
  47. /**
  48. * Gets informations about extensions
  49. *
  50. * @param string $extension OPTIONAL
  51. * @param string $version OPTIONAL PHP version
  52. * (4 => only PHP4, 5 or null => PHP4 + PHP5)
  53. *
  54. * @return array
  55. */
  56. public function getExtensions($extension = null, $version = null)
  57. {
  58. if ((null == $version ) || ('4' == $version)) {
  59. $extensions = array(
  60. 'Core' => array('4.0.0', '', '')
  61. );
  62. }
  63. if ('5' == $version) {
  64. $extensions = array(
  65. 'Core' => array('5.0.0', '', '')
  66. );
  67. }
  68. return $extensions;
  69. }
  70. /**
  71. * Gets informations about interfaces
  72. *
  73. * @param string $extension OPTIONAL
  74. * @param string $version OPTIONAL PHP version
  75. * (4 => only PHP4, 5 or null => PHP4 + PHP5)
  76. *
  77. * @return array
  78. * @link http://www.php.net/manual/en/reserved.interfaces.php
  79. */
  80. public function getInterfaces($extension = null, $version = null)
  81. {
  82. $interfaces = array();
  83. if ((null == $version ) || ('4' == $version)) {
  84. $version4 = array(
  85. );
  86. $interfaces = array_merge(
  87. $interfaces,
  88. $version4
  89. );
  90. }
  91. if ((null == $version ) || ('5' == $version)) {
  92. $version5 = array(
  93. );
  94. $interfaces = array_merge(
  95. $interfaces,
  96. $version5
  97. );
  98. }
  99. return $interfaces;
  100. }
  101. /**
  102. * Gets informations about classes
  103. *
  104. * @param string $extension OPTIONAL
  105. * @param string $version OPTIONAL PHP version
  106. * (4 => only PHP4, 5 or null => PHP4 + PHP5)
  107. *
  108. * @return array
  109. * @link http://www.php.net/manual/en/reserved.classes.php
  110. * @link http://www.php.net/manual/en/reserved.exceptions.php
  111. */
  112. public function getClasses($extension = null, $version = null)
  113. {
  114. $classes = array();
  115. if ((null == $version ) || ('4' == $version)) {
  116. $version4 = array(
  117. 'stdClass' => array('4.0.0', ''),
  118. );
  119. $classes = array_merge(
  120. $classes,
  121. $version4
  122. );
  123. }
  124. if ((null == $version ) || ('5' == $version)) {
  125. $version5 = array(
  126. 'Closure' => array('5.3.0', ''),
  127. 'ErrorException' => array('5.1.0', ''),
  128. 'Exception' => array('5.1.0', ''),
  129. );
  130. $classes = array_merge(
  131. $classes,
  132. $version5
  133. );
  134. }
  135. return $classes;
  136. }
  137. /**
  138. * Gets informations about functions
  139. *
  140. * @param string $extension OPTIONAL
  141. * @param string $version OPTIONAL PHP version
  142. * (4 => only PHP4, 5 or null => PHP4 + PHP5)
  143. *
  144. * @return array
  145. */
  146. public function getFunctions($extension = null, $version = null)
  147. {
  148. $functions = array();
  149. if ((null == $version ) || ('4' == $version)) {
  150. $version4 = array(
  151. 'zend_version' => array('4.0.0', ''),
  152. 'func_num_args' => array('4.0.0', ''),
  153. 'func_get_arg' => array('4.0.0', ''),
  154. 'func_get_args' => array('4.0.0', ''),
  155. 'strlen' => array('4.0.0', ''),
  156. 'strcmp' => array('4.0.0', ''),
  157. 'strncmp' => array('4.0.0', ''),
  158. 'strcasecmp' => array('4.0.0', ''),
  159. 'strncasecmp' => array('4.0.2', ''),
  160. 'each' => array('4.0.0', ''),
  161. 'error_reporting' => array('4.0.0', ''),
  162. 'define' => array('4.0.0', ''),
  163. 'defined' => array('4.0.0', ''),
  164. 'get_class' => array('4.0.0', ''),
  165. 'get_parent_class' => array('4.0.0', ''),
  166. 'method_exists' => array('4.0.0', ''),
  167. 'class_exists' => array('4.0.0', '', '4.0.0, 5.0.0'),
  168. 'function_exists' => array('4.0.0', ''),
  169. 'get_included_files' => array('4.0.0', ''),
  170. 'get_required_files' => array('4.0.0', ''),
  171. 'is_subclass_of' => array('4.0.0', ''),
  172. 'is_a' => array('4.2.0', '', '4.2.0, 4.2.0, 5.3.9'),
  173. 'get_class_vars' => array('4.0.0', ''),
  174. 'get_object_vars' => array('4.0.0', ''),
  175. 'get_class_methods' => array('4.0.0', ''),
  176. 'trigger_error' => array('4.0.1', ''),
  177. 'user_error' => array('4.0.0', ''),
  178. 'set_error_handler' => array('4.0.1', ''),
  179. 'restore_error_handler' => array('4.0.1', ''),
  180. 'get_declared_classes' => array('4.0.0', ''),
  181. 'get_defined_functions' => array('4.0.4', ''),
  182. 'get_defined_vars' => array('4.0.4', ''),
  183. 'create_function' => array('4.0.1', ''),
  184. 'get_resource_type' => array('4.0.2', ''),
  185. 'get_loaded_extensions' => array('4.0.0', ''),
  186. 'extension_loaded' => array('4.0.0', ''),
  187. 'get_extension_funcs' => array('4.0.0', ''),
  188. 'get_defined_constants' => array('4.0.7', ''),
  189. 'debug_backtrace' => array('4.3.0', ''),
  190. );
  191. $functions = array_merge(
  192. $functions,
  193. $version4
  194. );
  195. }
  196. if ((null == $version ) || ('5' == $version)) {
  197. $version5 = array(
  198. 'class_alias' => array('5.3.0', ''),
  199. 'debug_print_backtrace' => array('5.0.0', ''),
  200. 'gc_collect_cycles' => array('5.3.0', ''),
  201. 'gc_enabled' => array('5.3.0', ''),
  202. 'gc_enable' => array('5.3.0', ''),
  203. 'gc_disable' => array('5.3.0', ''),
  204. 'get_called_class' => array('5.3.0', ''),
  205. 'get_declared_interfaces' => array('5.0.0', ''),
  206. 'get_declared_traits' => array('5.4.0', ''),
  207. 'interface_exists' => array('5.0.2', ''),
  208. 'property_exists' => array('5.1.0', ''),
  209. 'restore_exception_handler' => array('5.0.0', ''),
  210. 'set_exception_handler' => array('5.0.0', ''),
  211. 'trait_exists' => array('5.4.0', ''),
  212. 'zend_thread_id' => array('5.0.0', ''),
  213. );
  214. $functions = array_merge(
  215. $functions,
  216. $version5
  217. );
  218. }
  219. return $functions;
  220. }
  221. /**
  222. * Gets informations about constants
  223. *
  224. * @param string $extension OPTIONAL
  225. * @param string $version OPTIONAL PHP version
  226. * (4 => only PHP4, 5 or null => PHP4 + PHP5)
  227. *
  228. * @return array
  229. * @link http://www.php.net/manual/en/reserved.constants.php
  230. */
  231. public function getConstants($extension = null, $version = null)
  232. {
  233. $constants = array();
  234. if ((null == $version ) || ('4' == $version)) {
  235. $version4 = array(
  236. '__CLASS__' => array('4.3.0', ''),
  237. '__FILE__' => array('4.0.0', ''),
  238. '__FUNCTION__' => array('4.3.0', ''),
  239. '__LINE__' => array('4.0.0', ''),
  240. 'DEFAULT_INCLUDE_PATH' => array('4.0.0', ''),
  241. 'E_ALL' => array('4.0.0', ''),
  242. 'E_ERROR' => array('4.0.0', ''),
  243. 'E_WARNING' => array('4.0.0', ''),
  244. 'E_PARSE' => array('4.0.0', ''),
  245. 'E_NOTICE' => array('4.0.0', ''),
  246. 'E_COMPILE_ERROR' => array('4.0.0', ''),
  247. 'E_COMPILE_WARNING' => array('4.0.0', ''),
  248. 'E_CORE_ERROR' => array('4.0.0', ''),
  249. 'E_CORE_WARNING' => array('4.0.0', ''),
  250. 'E_USER_ERROR' => array('4.0.0', ''),
  251. 'E_USER_WARNING' => array('4.0.0', ''),
  252. 'E_USER_NOTICE' => array('4.0.0', ''),
  253. 'FALSE' => array('4.0.0', ''),
  254. 'NULL' => array('4.0.0', ''),
  255. 'PEAR_INSTALL_DIR' => array('4.0.0', ''),
  256. 'PEAR_EXTENSION_DIR' => array('4.0.0', ''),
  257. 'PHP_BINDIR' => array('4.0.0', ''),
  258. 'PHP_CONFIG_FILE_PATH' => array('4.0.0', ''),
  259. 'PHP_CONFIG_FILE_SCAN_DIR' => array('4.0.0', ''),
  260. 'PHP_DATADIR' => array('4.0.0', ''),
  261. 'PHP_LIBDIR' => array('4.0.0', ''),
  262. 'PHP_EOL' => array('4.3.10', ''),
  263. 'PHP_EXTENSION_DIR' => array('4.0.0', ''),
  264. 'PHP_INT_MAX' => array('4.4.0', ''),
  265. 'PHP_INT_SIZE' => array('4.4.0', ''),
  266. 'PHP_LOCALSTATEDIR' => array('4.0.0', ''),
  267. 'PHP_PREFIX' => array('4.3.0', ''),
  268. 'PHP_OS' => array('4.0.0', ''),
  269. 'PHP_OUTPUT_HANDLER_CONT' => array('4.0.0', ''),
  270. 'PHP_OUTPUT_HANDLER_END' => array('4.0.0', ''),
  271. 'PHP_OUTPUT_HANDLER_START' => array('4.0.0', ''),
  272. 'PHP_SAPI' => array('4.2.0', ''),
  273. 'PHP_SHLIB_SUFFIX' => array('4.3.0', ''),
  274. 'PHP_SYSCONFDIR' => array('4.0.0', ''),
  275. 'PHP_VERSION' => array('4.0.0', ''),
  276. 'STDERR' => array('4.3.0', ''),
  277. 'STDIN' => array('4.3.0', ''),
  278. 'STDOUT' => array('4.3.0', ''),
  279. 'TRUE' => array('4.0.0', ''),
  280. 'UPLOAD_ERR_FORM_SIZE' => array('4.3.0', ''),
  281. 'UPLOAD_ERR_INI_SIZE' => array('4.3.0', ''),
  282. 'UPLOAD_ERR_NO_FILE' => array('4.3.0', ''),
  283. 'UPLOAD_ERR_NO_TMP_DIR' => array('4.3.10', ''),
  284. 'UPLOAD_ERR_OK' => array('4.3.0', ''),
  285. 'UPLOAD_ERR_PARTIAL' => array('4.3.0', ''),
  286. 'ZEND_THREAD_SAFE' => array('4.0.0', ''),
  287. );
  288. $constants = array_merge(
  289. $constants,
  290. $version4
  291. );
  292. }
  293. if ((null == $version ) || ('5' == $version)) {
  294. $version5 = array(
  295. '__COMPILER_HALT_OFFSET__' => array('5.1.0', ''),
  296. '__DIR__' => array('5.3.0', ''),
  297. '__METHOD__' => array('5.0.0', ''),
  298. '__NAMESPACE__' => array('5.3.0', ''),
  299. '__TRAIT__' => array('5.4.0', ''),
  300. 'DEBUG_BACKTRACE_IGNORE_ARGS' => array('5.3.6', ''),
  301. 'DEBUG_BACKTRACE_PROVIDE_OBJECT' => array('5.3.6', ''),
  302. 'E_RECOVERABLE_ERROR' => array('5.2.0', ''),
  303. 'E_DEPRECATED' => array('5.3.0', ''),
  304. 'E_USER_DEPRECATED' => array('5.3.0', ''),
  305. 'E_STRICT' => array('5.0.0', ''),
  306. 'PHP_BINARY' => array('5.4.0', ''),
  307. 'PHP_DEBUG' => array('5.2.7', ''),
  308. 'PHP_EXTRA_VERSION' => array('5.2.7', ''),
  309. 'PHP_MAJOR_VERSION' => array('5.2.7', ''),
  310. 'PHP_MANDIR' => array('5.3.7', ''),
  311. 'PHP_MAXPATHLEN' => array('5.3.0', ''),
  312. 'PHP_MINOR_VERSION' => array('5.2.7', ''),
  313. 'PHP_OUTPUT_HANDLER_CLEAN' => array('5.4.0', ''),
  314. 'PHP_OUTPUT_HANDLER_CLEANABLE' => array('5.4.0', ''),
  315. 'PHP_OUTPUT_HANDLER_DISABLED' => array('5.4.0', ''),
  316. 'PHP_OUTPUT_HANDLER_FINAL' => array('5.4.0', ''),
  317. 'PHP_OUTPUT_HANDLER_FLUSH' => array('5.4.0', ''),
  318. 'PHP_OUTPUT_HANDLER_FLUSHABLE' => array('5.4.0', ''),
  319. 'PHP_OUTPUT_HANDLER_REMOVABLE' => array('5.4.0', ''),
  320. 'PHP_OUTPUT_HANDLER_STARTED' => array('5.4.0', ''),
  321. 'PHP_OUTPUT_HANDLER_STDFLAGS' => array('5.4.0', ''),
  322. 'PHP_OUTPUT_HANDLER_WRITE' => array('5.4.0', ''),
  323. 'PHP_RELEASE_VERSION' => array('5.2.7', ''),
  324. 'PHP_VERSION_ID' => array('5.2.7', ''),
  325. 'PHP_WINDOWS_VERSION_MAJOR' => array('5.3.0', ''),
  326. 'PHP_WINDOWS_VERSION_MINOR' => array('5.3.0', ''),
  327. 'PHP_WINDOWS_VERSION_BUILD' => array('5.3.0', ''),
  328. 'PHP_WINDOWS_VERSION_PLATFORM' => array('5.3.0', ''),
  329. 'PHP_WINDOWS_VERSION_SP_MAJOR' => array('5.3.0', ''),
  330. 'PHP_WINDOWS_VERSION_SP_MINOR' => array('5.3.0', ''),
  331. 'PHP_WINDOWS_VERSION_SUITEMASK' => array('5.3.0', ''),
  332. 'PHP_WINDOWS_VERSION_PRODUCTTYPE' => array('5.3.0', ''),
  333. 'PHP_WINDOWS_NT_DOMAIN_CONTROLLER' => array('5.3.0', ''),
  334. 'PHP_WINDOWS_NT_SERVER' => array('5.3.0', ''),
  335. 'PHP_WINDOWS_NT_WORKSTATION' => array('5.3.0', ''),
  336. 'PHP_ZTS' => array('5.2.7', ''),
  337. 'UPLOAD_ERR_CANT_WRITE' => array('5.1.0', ''),
  338. 'UPLOAD_ERR_EXTENSION' => array('5.2.0', ''),
  339. 'ZEND_DEBUG_BUILD' => array('5.3.0', ''),
  340. 'ZEND_MULTIBYTE' => array('5.3.4', '5.3.14'),
  341. );
  342. $constants = array_merge(
  343. $constants,
  344. $version5
  345. );
  346. }
  347. return $constants;
  348. }
  349. }